您好,登錄后才能下訂單哦!
本篇內容介紹了“MYSQL單表查詢怎么優化”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
(1)很多人可能并不知道MYSQL有一個神奇的關鍵字 EXPLAIN 關鍵字,它可以讓你看到MYSQL是如何去處理你的SQL語句的,這可以幫我們判斷得出影響你數據庫性能的是查詢語句還是表結構的原因。
(2)我們在進行數據庫查詢時,應該明確你需要查詢哪一些字段,而不是隨意使用select *.
(3)可以使用連接(JOIN)來代替子查詢。
(4)使用limit , count 或者條件 where子句時,需要限制的條件都要加上,確保你要查什么數據最后取到的都是你需要查找的數據,盡量不要查到無用數據,做到不濫用。比如說我要查找姓名對應的賬號,這樣的話就可以用上 limit 1,這樣mysql在找到一條數據后就停止搜索,而不是全文搜索完再停止。
開啟查詢緩存:
這是提高查詢有效的方法之一。當查詢被執行了的時候,對應的查詢結果會被放到一個緩存中,這樣,以后進行的相同的查詢就不用操作表,而是直接訪問緩存取出查詢結果就可以了。
查詢緩存工作流程:
(1)服務器接收SQL,以SQL+DB+Query_cache_query_flags作為hash查找鍵提交到緩存中進行查詢。
(2)如果在緩存中找到了相關的處理結果就將處理結果返回給客戶端。
(3)如果沒有找到緩存則執行SQL解析、預處理以及SQL優化等一些列的操作;
(4)執行完SQL之后,將結果集保存到緩存并將處理結果返回給客戶端。
那么,我們如何判斷什么樣的情況下才需要開啟緩存呢?開啟對系統性能有明顯的提升那才有意義。方法如下:
1)通過緩存命中率判斷, 緩存命中率 = 緩存命中次數/ 查詢次數 。
2)通過緩存寫入率,寫入率 = 緩存寫入次數 / 查詢次數。
3)通過 命中-寫入率 判斷, 比率 = 命中次數 / 寫入次數, MySQL中稱之為比較能反映性能提升的指數,一般來說達到3:1則算是查詢緩存有效,而最好能夠達到10:1
與緩存相關的主要參數如下表所示。可以使用命令SHOW VARIABLES LIKE '%query_cache%'查看
緩存數據失效時機
在表的結構或數據發生改變時,查詢緩存中的數據不再生效。當INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE語句執行時會導致緩存中的數據失效。所以查詢緩存適合有大量相同查詢的時候進行使用,不適合有大量數據更新的時候使用。
可以使用下面三個SQL來清理查詢緩存:
1、FLUSH QUERY CACHE; // 清理查詢緩存內存碎片。
2、RESET QUERY CACHE; // 從查詢緩存中移出所有查詢。
3、FLUSH TABLES; //關閉所有打開的表,同時該操作將會清空查詢緩存中的內容。
“MYSQL單表查詢怎么優化”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。