我有一個數字的大型數據庫,我在尋找一個匹配之間:聲明失蹤指數之間在某些情況下
例如:
1112203488
我的表看起來像這樣:
| sATON | eATON | info |
我有sATON和伊頓兩隻指數的(命名爲S和E)
所以我的SQL如下:
SELECT *
FROM `data2`
FORCE INDEX (s, e)
WHERE 1112203488
BETWEEN `sATON`
AND `eATON`;
所以通常發生在使用索引的查詢將接近於零時間(0.02)。但是,有時看起來MySQL中的表格統計信息正在做出全表掃描的決定,而不管我強制使用SQL中的索引。這是一個巨大的性能影響,因爲它將查詢從0.02秒延長到120秒。
這裏有一些樣品是跑得快(使用索引):
67372289
134744072
而緩慢的:
1112203488
1348203839
如果有幫助的索引使用BTREE。
多少行是慢查詢返回(什麼表的百分比),VS多少行(和百分比)快的人正在返回?表格統計信息是否準確並且是最新的? –
這兩個索引不能同時使用。無論是其中一個還是其他。 –
@MikeChristensen所有的查詢都會返回一個,這些數據是最新的。 – Benjojo