Chỉ mục dấu thời gian của MySQL
Tôi có một bảng "đơn hàng" với trường "Thời gian", chứa dấu thời gian unix (độ phân giải giây) của mỗi đơn hàng. Trường này được lập chỉ mục Show Trong Trình tạo mô hình cơ sở dữ liệu, tôi đã đặt loại trường thành “Dấu thời gian Unix (giây)”, để Trình tạo truy vấn nhận ra đó là ngày và cho phép tôi chọn khoảng thời gian ngày làm bộ lọc Tuy nhiên, như tôi đã phát hiện ra, bộ lọc như vậy không may được dịch thành biểu thức "ở đâu" sau đây Các chỉ mục được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu nhanh hơn so với cách khác. Người dùng không thể nhìn thấy các chỉ mục, chúng chỉ được sử dụng để tăng tốc độ tìm kiếm/truy vấn Ghi chú. Cập nhật bảng có chỉ mục mất nhiều thời gian hơn cập nhật bảng không có chỉ mục (vì chỉ mục cũng cần cập nhật). Vì vậy, chỉ tạo các chỉ mục trên các cột sẽ được tìm kiếm thường xuyên Cú pháp TẠO CHỈ SỐTạo một chỉ mục trên một bảng. Các giá trị trùng lặp được cho phép TẠO INDEX index_name TẠO CHỈ SỐ DUY NHẤT Cú phápTạo một chỉ mục duy nhất trên một bảng. Giá trị trùng lặp không được phép TẠO INDEX DUY NHẤT index_name MySQL CREATE INDEX Ví dụCâu lệnh SQL dưới đây tạo một chỉ mục có tên "idx_lastname" trên cột "LastName" trong bảng "Persons" TẠO CHỈ SỐ idx_lastname Nếu bạn muốn tạo chỉ mục trên tổ hợp cột, bạn có thể liệt kê tên cột trong dấu ngoặc đơn, phân tách bằng dấu phẩy Nhiều bảng cơ sở dữ liệu trong thế giới thực có nhiều hàng với các giá trị cột Một cách không hiệu quả để làm điều đó là điều này
Nó không hiệu quả vì nó áp dụng một hàm -- Một cách tốt hơn để thực hiện thao tác này là
Điều này chọn một loạt các giá trị của Nếu bảng có chỉ mục trên cột 1Đừng bị cám dỗ để sử dụng cái này, mặc dù nó có vẻ hiệu quả hơn
Nó có hiệu quả tương tự như quét phạm vi, nhưng nó sẽ chọn các hàng có giá trị Dấu thời gian có thể được lập chỉ mục không?Đúng, việc lập chỉ mục các cột dấu thời gian khi bạn truy vấn chúng là hoàn toàn nên làm và bình thường. Tôi lập chỉ mục dấu thời gian của mình khi tôi biết mình sẽ thường xuyên truy vấn/sắp xếp theo cột đó.
Làm cách nào để sử dụng dấu thời gian trong MySQL?Khi bảng MySQL được tạo, chỉ cần làm điều này. . chọn DẤU THỜI GIAN làm loại cột của bạn đặt giá trị Mặc định thành CURRENT_TIMESTAMP sau đó chỉ cần chèn bất kỳ hàng nào vào bảng mà không cần chèn bất kỳ giá trị nào cho cột thời gian Dấu thời gian được lưu trữ trong MySQL như thế nào?MySQL chuyển đổi các giá trị DẤU THỜI GIAN từ múi giờ hiện tại sang UTC để lưu trữ và ngược lại từ UTC sang múi giờ hiện tại để truy xuất. (Điều này không xảy ra đối với các loại khác như DATETIME. ) Theo mặc định, múi giờ hiện tại cho mỗi kết nối là thời gian của máy chủ.
Lập chỉ mục cột ngày có tốt không?Có, nói chung nên có một chỉ mục trên trường được sử dụng trong tiêu chí truy vấn . Điều này thực sự hữu ích khi có một số lượng lớn tài liệu (e. g. , một triệu) trong bộ sưu tập. Chỉ mục sẽ được sử dụng để chạy truy vấn nhanh. |