還是廣告位
我們的使用mysql的時候總是想當然的使用
select
×
from
tables
where
a>0
order
by
id
desc
limit 500000,200
|
當我們真正使用它查詢時發現這個很慢很慢
我個人認為這是因為mysql並沒有對該語句進行索引,即便時索引的數據,當讀取前1000條時和最后一頁時的速度差距時很大的原因在與這個limit
limit是一個很好的東西,但是由於他在查詢的過程中io操作較大尤其是limit后面的第一個值比較大的時候
我們應該怎么做呢
我在www.fentutu.com中使用了一種比較新奇的方法,這個方法時在163的一片博客中寫的,他當時的查詢是以mssql為主的,現在查詢卻查詢不到,我找到另一片與此文類似的 放進了引用通告中,
具體的方法就是
select
*
from
tables
where
id >=(
select
id
from
tables
where
value>0
order
by
id
desc
limit 500000,1)
and
value>0
order
by
id
desc
limit 200
|
就是這種類似的語句 此語句時我按照印象來的並沒有經過真正測試 理論上沒有語法錯誤,如果有的話請各位看官簡單修改之。