我試圖發現在我們龐大的數據庫中的第一項,其中「富」剛開始出現,但此查詢速度太慢:如何檢查mysql數據庫中的每個第N項?
select min(id)
from mytable
where data like '%foo%';
我很樂意以百萬計算得到足夠接近,但此查詢似乎並沒有跑得更快:
select min(id)
from mytable
where mod(id, 1000000) = 0
and data like '%foo%';
任何想法如何讓MySQL只檢查每百萬條目?我能想到的唯一的事情就是與第一整數一個臨時表和連接上,通過1000000
_「任何想法如何讓mysql只檢查每第100萬條目?」 - 這個問題意味着你甚至在這之前做錯了事情。您應該(在正常情況下)在您告訴數據庫_where_(或如何)搜索自己時不需要這種方法。很可能這個問題可以通過使用適當的索引來解決。 (儘管一個帶有'like'%foo%'的通配符搜索當然是有問題的,並且該列的索引很可能不會解決這個問題,但是也不會試圖干涉搜索是如何完成的。) – CBroe 2014-10-17 17:54:15
數據太大而無法索引,特別是對於我的一個查詢。 – 2014-10-17 18:03:37
是否可以計算每個第n行的id並專門檢索該行,然後測試其中的數據?它會很快,因爲它會做索引查找。 – 2014-10-17 19:17:43