分頁本來就是數(shù)據(jù)越多越慢,正常情況下,絕對有條件限制,例如時間
創(chuàng)新互聯(lián)公司從2013年開始,先為土默特右旗等服務建站,土默特右旗等地企業(yè),進行企業(yè)商務咨詢服務。為土默特右旗企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
還可以不用limit,用id段查詢,弊端是不能斷
你的查詢需求中,最常用的where字段是什么,然后在數(shù)據(jù)表中給這個字段建立索引。多表查詢、嵌套查詢的話,就得優(yōu)化sql了,這個得具體情況具體分析了。
1.建立索引,盡可能把索引建立到你你經(jīng)常比較的字段上,如select a,b,c,d from a where 索引字段=值,這個索引字段最好是數(shù)值型數(shù)據(jù)
2.慢有更多情況,
情況1:遠程查詢,其實可能查詢不慢,由于數(shù)據(jù)量大,傳輸過程慢
情況2:WHERE 后面的比較數(shù)據(jù)太多,比如 like 類的語句
情況3:需要哪個字段只取那個字段就行了,比如select * from a與select b,c,d from a速度是有差距的
3.數(shù)據(jù)庫定期維護,壓縮,把不常用的數(shù)據(jù)備份后放入備份庫里,查詢時查備份庫等
問題補充:
.第一條:建立索引,怎么建立,我也聽說過,但不知道怎么使用
答:每種數(shù)據(jù)建立索引的方法有差異,比如SQL SERVER 2000中可對多個字段進行索引,比如SQL SERVER2000中有命令
CREATE INDEX
為給定表或視圖創(chuàng)建索引。
只有表或視圖的所有者才能為表創(chuàng)建索引。表或視圖的所有者可以隨時創(chuàng)建索引,無論表中是否有數(shù)據(jù)??梢酝ㄟ^指定限定的數(shù)據(jù)庫名稱,為另一個數(shù)據(jù)庫中的表或視圖創(chuàng)建索引。
語法
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH index_option [ ,...n] ]
[ ON filegroup ]
index_option ::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}
第三條:數(shù)據(jù)庫定期維護,壓縮:怎么個壓縮法?及時備份數(shù)據(jù)到備份庫查詢備份庫,那查詢時不是還慢嗎?
答:這個有壓縮工具,基本上每種數(shù)據(jù)庫都有自己的壓縮數(shù)據(jù)庫的工具
如果數(shù)據(jù)庫數(shù)據(jù)很大,最好給相應字段建立索引,這樣會快很多!還有就是查詢語句盡量不要寫 in()之類的,這比較耗時!
表結(jié)構(gòu)可能有問題,你用來查詢的字段是鍵么?不是的話在百萬數(shù)據(jù)量時時間長是必然的,還有你的SQL語句,如果有聯(lián)表查之類的,而表之間的關(guān)聯(lián)和條件有非鍵項,那慢也是正常的
1. 找到你mysql的安裝目錄,打開my.ini,如果是Linux服務器,那就是my.conf;
2.然后在[mysqld]選項下面添加:
skip-name-resolve
這個選項的意思是:禁用DNS解析,連接速度會快很多。
然后保存,重啟mysql服務器,希望能幫你解決問題!