PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Trong PostgreSQL, vấn đề kỳ lạ về hiệu suất citext?

Nó không gọi hàm SQL lower . Như tài liệu cho biết, nó về cơ bản nội bộ cuộc gọi lower .

Các lệnh gọi xảy ra trong các hàm C triển khai citext các phép toán so sánh. Và thay vì thực sự gọi lower , chúng chuyển trực tiếp đến str_tolower() bên dưới lịch trình. Bạn có thể tự mình thấy điều này trong mã nguồn , hầu hết đều tương đối dễ theo dõi trong trường hợp này.

Vì vậy, những gì bạn đang tiết kiệm, nhiều hơn hoặc ít hơn, là chi phí của hai lệnh gọi hàm SQL cho mỗi phép so sánh. Chi phí này không đáng kể, so với chính chi phí so sánh, nhưng có thể bạn sẽ không bao giờ nhận thấy một trong hai chi phí này bên cạnh các chi phí khác trong một truy vấn thông thường.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NHÓM hiệu quả THEO một biểu thức CASE trong Amazon Redshift / PostgreSQL

  2. Có phím tắt nào để sử dụng dblink trong Postgres không?

  3. Loại ngày trong npgsql là gì?

  4. Hợp nhất các kết quả trong bảng thành các cột (pivot / crosstab?)

  5. Chuyển đổi khoảng thời gian thành micro giây dưới dạng số trong PostgreSQL?