我可以防止在mysql中使用filesort時,在哪個條件字段上的某個表中的哪個字段和哪個字段上的另一個順序。在這種情況下可以使用索引嗎?這兩個表都很大 - 超過100萬條記錄mysql按性能排序
0
A
回答
3
您正在處理100萬條記錄,當然您需要添加索引才能獲得一定的速度,否則會影響訪問您網站的任何人。
您需要仔細檢查您將要添加索引的字段。謝謝
0
你需要仔細看看索引使用解釋。
如果有where子句,或者將您正在排序的列添加到該表所用的索引,並查看它是否擺脫了filesort,或者它當前沒有使用那個表(它我懷疑是那麼多的記錄)然後只是創建一個新的。
還有一點值得注意的是,其他人可能會提供更多信息,是mysql經常(或總是)不能使用索引來對DESC進行排序 - 我已經處於一種情況表現爲具有將以相反順序編制索引的計算字段,並由該ASC進行排序。 EG:如果您有一個要通過DESC排序的整數字段,請添加一個字段,您可以在該字段中存儲從1000000000(或某個其他大數字)中減去的整數值,對其進行索引,然後按該字段的升序進行排序。
正如我所說,我不記得具體細節,它可能會影響較舊的MySQL或其他東西,但有一種感覺,它目前的侷限性。
相關問題
- 1. MySQL按相關性排序
- 2. MySQL排序性能問題
- 3. 按性能問題排序
- 4. mysql - 按相關性和意見排序
- 5. MySQL搜索(按相關性排序)
- 6. where子句mysql按相關性排序
- 7. MySQL的行進行排序性能
- 8. MySQL查詢排序/分組性能
- 9. 按計算列排序時的性能
- 10. Postgres按國外主要性能排序?
- 11. MongoDB:按相關性功能排序
- 12. 排序按屬性
- 13. mysql按順序隨機()和按價值排序 - 可能嗎?
- 14. Magento列表按屬性排序按屬性排序不值
- 15. NHibernate排序性能
- 16. MySQL:按時間排序(MM:SS)?
- 17. MYSQL - 按首字母排序
- 18. mySQL按字符串排序
- 19. MySQL按緩慢排序
- 20. MySQL按字段排序
- 21. MySql按問題排序
- 22. Mysql按日期排序
- 23. Mysql,按「模式」排序?
- 24. MySQL按列名排序表
- 25. MySQL按日期排序行
- 26. MySQL/MariaDB按分數排序排列
- 27. 排序由XXX按ASC或DESC排序,動態排序,mysql ...
- 28. 按名稱排序屬性
- 29. 按子屬性排序
- 30. MySQL條目按錯誤順序排列按日期排序
謝謝,但mysql使用「order by」和「where」操作的索引僅當在「where」子句和order by exists索引中使用的所有字段中。但是,當這個字段在不同的表中時,我能創建這樣的索引嗎 – Andrew 2010-02-16 09:01:32
當然,我可以在兩個表中重複哪個順序的字段,但是這會減少插入/更新/刪除操作的性能並增加使用磁盤空間:) – Andrew 2010-02-16 09:03:57
@Andrew:是的,您必須決定是否要選擇或更新數據庫。 – Sarfraz 2010-02-16 11:22:47