MYSQL單表查詢怎么優(yōu)化

本篇內(nèi)容介紹了“MySQL單表查詢怎么優(yōu)化”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站制作、欒城網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、欒城網(wǎng)絡(luò)營銷、欒城企業(yè)策劃、欒城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供欒城建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:bm7419.com

單表查詢優(yōu)化

(1)很多人可能并不知道MYSQL有一個神奇的關(guān)鍵字 EXPLAIN 關(guān)鍵字,它可以讓你看到MYSQL是如何去處理你的SQL語句的,這可以幫我們判斷得出影響你數(shù)據(jù)庫性能的是查詢語句還是表結(jié)構(gòu)的原因。

(2)我們在進(jìn)行數(shù)據(jù)庫查詢時,應(yīng)該明確你需要查詢哪一些字段,而不是隨意使用select  *.

(3)可以使用連接(JOIN)來代替子查詢。

(4)使用limit , count 或者條件 where子句時,需要限制的條件都要加上,確保你要查什么數(shù)據(jù)最后取到的都是你需要查找的數(shù)據(jù),盡量不要查到無用數(shù)據(jù),做到不濫用。比如說我要查找姓名對應(yīng)的賬號,這樣的話就可以用上 limit 1,這樣mysql在找到一條數(shù)據(jù)后就停止搜索,而不是全文搜索完再停止。

開啟查詢緩存:

這是提高查詢有效的方法之一。當(dāng)查詢被執(zhí)行了的時候,對應(yīng)的查詢結(jié)果會被放到一個緩存中,這樣,以后進(jìn)行的相同的查詢就不用操作表,而是直接訪問緩存取出查詢結(jié)果就可以了。

查詢緩存工作流程:

(1)服務(wù)器接收SQL,以SQL+DB+Query_cache_query_flags作為hash查找鍵提交到緩存中進(jìn)行查詢。

(2)如果在緩存中找到了相關(guān)的處理結(jié)果就將處理結(jié)果返回給客戶端。

(3)如果沒有找到緩存則執(zhí)行SQL解析、預(yù)處理以及SQL優(yōu)化等一些列的操作;

(4)執(zhí)行完SQL之后,將結(jié)果集保存到緩存并將處理結(jié)果返回給客戶端。

那么,我們?nèi)绾闻袛嗍裁礃拥那闆r下才需要開啟緩存呢?開啟對系統(tǒng)性能有明顯的提升那才有意義。方法如下:

1)通過緩存命中率判斷, 緩存命中率 = 緩存命中次數(shù)/ 查詢次數(shù) 。

2)通過緩存寫入率,寫入率 = 緩存寫入次數(shù)  / 查詢次數(shù)。

3)通過 命中-寫入率 判斷, 比率 = 命中次數(shù)  / 寫入次數(shù), MySQL中稱之為比較能反映性能提升的指數(shù),一般來說達(dá)到3:1則算是查詢緩存有效,而最好能夠達(dá)到10:1

與緩存相關(guān)的主要參數(shù)如下表所示。可以使用命令SHOW VARIABLES LIKE '%query_cache%'查看

MYSQL單表查詢怎么優(yōu)化

緩存數(shù)據(jù)失效時機(jī)

在表的結(jié)構(gòu)或數(shù)據(jù)發(fā)生改變時,查詢緩存中的數(shù)據(jù)不再生效。當(dāng)INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE語句執(zhí)行時會導(dǎo)致緩存中的數(shù)據(jù)失效。所以查詢緩存適合有大量相同查詢的時候進(jìn)行使用,不適合有大量數(shù)據(jù)更新的時候使用。

可以使用下面三個SQL來清理查詢緩存:

1、FLUSH QUERY CACHE; // 清理查詢緩存內(nèi)存碎片。

2、RESET QUERY CACHE; // 從查詢緩存中移出所有查詢。

3、FLUSH TABLES; //關(guān)閉所有打開的表,同時該操作將會清空查詢緩存中的內(nèi)容。

“MYSQL單表查詢怎么優(yōu)化”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

新聞名稱:MYSQL單表查詢怎么優(yōu)化
鏈接分享:http://bm7419.com/article10/jceido.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站制作、定制開發(fā)、域名注冊面包屑導(dǎo)航、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化