以下是我的表:在我的數據庫gps_gotaxikingMySQL表和查詢優化
+-----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+----------------+
| RecordID | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| CarNo | varchar(10) | NO | MUL | NULL | |
| Valid | varchar(48) | NO | | NULL | |
| lon | varchar(13) | NO | | NULL | |
| lat | varchar(13) | NO | | NULL | |
| angle | varchar(10) | NO | | NULL | |
| speed | varchar(10) | NO | | NULL | |
| CarStatus | varchar(10) | NO | | NULL | |
| Time | datetime | NO | | NULL | |
+-----------+---------------------+------+-----+---------+----------------+
目前近100萬行數據。
我查詢使用下面的代碼:
SELECT lat, lon
FROM gps_gotaxiking
WHERE `CarNo` = "XXXX"
AND Time BETWEEN 'yyyy-mm-dd 00:00:00' AND 'yyyy-mm-dd 23:59:59'
AND Valid = 'Normal';
我可以得到的結果,但它的返回時間超過1分鐘, 有沒有什麼辦法來簡化查詢,並減少處理時間?
爲什麼你使用幾乎相當的時間varchar數據類型? – 2014-10-09 12:29:07
有多少行匹配'CarNo =「XXXX」'? – Barmar 2014-10-09 12:31:55
如何爲CarNo添加索引? – mreiterer 2014-10-09 12:34:24