top
Loading...
7.2.3.SELECT查詢的速度
7.2.3. SELECT查詢的速度

總的來說,要想使一個較慢速SELECT ... WHERE更快,應首先檢查是否能增加一個索引。不同表之間的引用通常通過索引來完成。你可以使用EXPLAIN語句來確定SELECT語句使用哪些索引。參見7.4.5節,“MySQL如何使用索引”和7.2.1節,“EXPLAIN語法(獲取關于SELECT的信息)”。

下面是一些加速對MyISAM表的查詢的一般建議:

·         為了幫助MySQL更好地優化查詢,在一個裝載數據后的表上運行ANALYZE TABLEmyisamchk --analyze。這樣為每一個索引更新指出有相同值的行的平均行數的值(當然,如果只有一個索引,這總是1。)MySQL使用該方法來決定當你聯接兩個基于非常量表達式的表時選擇哪個索引。你可以使用SHOW INDEX FROM tbl_name并檢查Cardinality值來檢查表分析結果。myisamchk --description --verbose可以顯示索引分布信息。

·         要想根據一個索引排序一個索引和數據,使用myisamchk --sort-index --sort-records=1(如果你想要在索引1上排序)。如果只有一個索引,想要根據該索引的次序讀取所有的記錄,這是使查詢更快的一個好方法。但是請注意,第一次對一個大表按照這種方法排序時將花很長時間!

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗