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

Kết hợp hiệu quả trên các phạm vi khoảng thời gian trong SQL

Không chắc tất cả diễn ra trong nội bộ như thế nào, nhưng tùy thuộc vào tình huống, tôi khuyên bạn nên thử với một bảng 'cuộn ra' tất cả các giá trị từ d1 và sau đó kết hợp với bảng đó. Bằng cách này, công cụ truy vấn có thể xác định đúng "chính xác" bản ghi thay vì phải tìm kết hợp các ranh giới phù hợp với giá trị đang được tìm kiếm.

ví dụ:

x value
a  1
a  2
a  3
b  5
b  6
b  7
b  8
b  9
b 10
b 11
c 19 etc..

được cung cấp một chỉ mục trên cột giá trị (**), điều này sẽ nhanh hơn một chút so với việc kết hợp với GIỮA phần bắt đầu VÀ kết thúc trên IMHO bảng d1 ban đầu.

Tất nhiên, mỗi khi bạn thực hiện thay đổi đối với d1, bạn cũng cần phải điều chỉnh bảng được triển khai (trigger?). Nếu điều này xảy ra thường xuyên, bạn sẽ dành nhiều thời gian để cập nhật bảng được triển khai hơn là những gì bạn đã đạt được ngay từ đầu! Ngoài ra, điều này có thể chiếm khá nhiều dung lượng (đĩa) nhanh chóng nếu một số khoảng thời gian thực sự lớn; và ngoài ra, điều này giả định rằng chúng ta không cần tìm các số không phải là số nguyên (ví dụ:điều gì sẽ xảy ra nếu chúng ta tìm kiếm giá trị 3,14?)

(Bạn có thể cân nhắc thử nghiệm một giá trị duy nhất trên (giá trị, x) tại đây ...)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kết quả truy vấn mysql vào mảng php

  2. Chọn nhiều bảng khi một bảng trống trong MySQL

  3. Giới hạn kích thước VARCHAR của MySQL

  4. Ràng buộc mô hình tuyến đường không hoạt động

  5. MySQL - Thực thể:Giá trị cho cột 'IsPrimaryKey' trong bảng 'TableDetails' là DBNull