Làm cách nào để tạo chỉ mục vào phần ngày của trường DATETIME?Làm cách nào để tạo chỉ mục vào phần ngày của trường DATETIME trong MySql
mysql> SHOW COLUMNS FROM transactionlist;
+-------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+----------------+
| TransactionNumber | int(10) unsigned | NO | PRI | NULL | auto_increment |
| WagerId | int(11) | YES | MUL | 0 | |
| TranNum | int(11) | YES | MUL | 0 | |
| TranDateTime | datetime | NO | | NULL | |
| Amount | double | YES | | 0 | |
| Action | smallint(6) | YES | | 0 | |
| Uid | int(11) | YES | | 1 | |
| AuthId | int(11) | YES | | 1 | |
+-------------------+------------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)
TranDateTime được sử dụng để lưu các ngày và thời gian của một giao dịch khi nó xảy ra
Bảng My có hơn 1.000.000 hồ sơ trong đó và báo cáo kết quả
SELECT * FROM transactionlist where date(TranDateTime) = '2008-08-17'
mất một thời gian dài.
EDIT:
Hãy nhìn vào bài viết trên blog này trên "Why MySQL’s DATETIME can and should be avoided"
chú thích cảnh báo cho liên kết mà bạn đề xuất một giao diện và cơn thịnh nộ mà nó gần như biên giới ở điểm trẻ con. Và nhà văn không đánh bại bất kỳ lời chỉ trích nào, trong khi vẫn đề cập rằng anh ta đứng đằng sau những gì anh ta nói, nhưng quan điểm của anh ấy đang giảm dần với mỗi người. Nhưng vẫn không lãng phí thời gian, nếu bạn đọc nhận xét. – kommradHomer