欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL數(shù)據(jù)庫查詢性能優(yōu)化策略

 更新時(shí)間:2020年08月13日 09:25:01   作者:CherishTheYouth  
這篇文章主要介紹了MySQL數(shù)據(jù)庫查詢性能優(yōu)化的策略,幫助大家的工作學(xué)習(xí)提高M(jìn)ySQL數(shù)據(jù)庫的性能,感興趣的朋友可以了解下

優(yōu)化查詢

使用Explain語句分析查詢語句

Explain 用來分析 SELECT 查詢語句,開發(fā)人員可以通過分析 Explain 結(jié)果來優(yōu)化查詢語句。

通過對(duì)查詢語句的分析,可以了解查詢語句的執(zhí)行情況,找出查詢語句執(zhí)行的瓶頸,從而優(yōu)化查詢語句.

使用索引查詢

MySql中提高性能的一個(gè)最有效的方式就是對(duì)數(shù)據(jù)表設(shè)計(jì)合理的索引.

索引提供了高效訪問數(shù)據(jù)的方法,并且加快查詢速度.

如果查詢時(shí)沒有使用索引,那么查詢語句將掃描表中所有的記錄.在數(shù)據(jù)量大的時(shí)候,這樣查詢速度會(huì)很慢.

使用索引進(jìn)行查詢,查詢語句可以根據(jù)索引快速定位到待查詢記錄,從而減少查詢記錄數(shù),達(dá)到提高查詢速度的目的.

幾種特殊情況(使用帶索引的字段查詢時(shí),索引不起作用)

  • 使用Like關(guān)鍵字,如果匹配字符串的第一個(gè)字符為"%",索引不會(huì)起作用,如果第一個(gè)關(guān)鍵字不是 "%",那么索引會(huì)起作用.
  • MySQL可以為多個(gè)字段創(chuàng)建索引,一個(gè)索引可以包括16個(gè)字段,只有查詢條件中使用這些字段中的第一個(gè)字段時(shí),索引才會(huì)被使用.
  • 查詢關(guān)鍵字只有 OR ,且OR左右兩邊的列都是索引時(shí),索引才起作用.

優(yōu)化子查詢

子查詢雖然可以使查詢語句更靈活,但執(zhí)行效率不高.因?yàn)镸ySQL需要為內(nèi)層查詢語句的查詢結(jié)果建立一個(gè)臨時(shí)表.

可以使用連接查詢代替子查詢,連接查詢不需要建立臨時(shí)表,其速度比子查詢要快.

優(yōu)化數(shù)據(jù)訪問

1.減少請(qǐng)求的數(shù)據(jù)量

  • 只返回必要的列,最好不要用 select * 這種語法;
  • 只返回必要的行,使用limit語句限制獲取數(shù)據(jù)的條數(shù);
  • 緩存重復(fù)查詢的數(shù)據(jù): 使用緩存可以避免在數(shù)據(jù)庫中查詢,特別是在數(shù)據(jù)被經(jīng)常反復(fù)查詢時(shí),緩存帶來的查詢性能的提升,將會(huì)是非常明顯的.

2.減少服務(wù)器端掃描的行數(shù)

最有效的方法是: 使用索引來覆蓋查詢;

重構(gòu)查詢方式

1.切分大查詢

一個(gè)大查詢?nèi)绻淮涡詧?zhí)行的話,可能一次鎖住很多數(shù)據(jù),占滿整個(gè)事務(wù)日志,耗盡系統(tǒng)資源,阻塞很多小的但重要的查詢.

2.分解大連接查詢

將一個(gè)大連接查詢分解成對(duì)每一個(gè)表進(jìn)行一次單表查詢,然后在應(yīng)用程序中進(jìn)行關(guān)聯(lián).

這樣做的好處有:

  1. 讓緩存更高效. 對(duì)于連接查詢,如果其中一個(gè)表發(fā)生變化,那么整個(gè)查詢緩存就無法使用了.而分解后的多個(gè)查詢,即使其中一個(gè)表的查詢發(fā)生變化,那么對(duì)于其他表的查詢緩存依然可以使用.
  2. 分解成單表查詢,這些單表查詢的緩存結(jié)果更可能被其他查詢使用到,從而減少冗余記錄的查詢.
  3. 減少鎖競(jìng)爭(zhēng).
  4. 在應(yīng)用層進(jìn)行連接,可以更容易的對(duì)數(shù)據(jù)庫進(jìn)行拆分,從而更容易做到高性能和可伸縮.

優(yōu)化數(shù)據(jù)庫結(jié)構(gòu)

1.將字段很多的表分解成多個(gè)表

對(duì)于字段較多的表,如果有些字段的使用頻率很低,可將這些字段分離出來形成了新表.

當(dāng)一個(gè)表的數(shù)據(jù)量很大時(shí),會(huì)由于使用頻率低的字段的存在而變慢.

2.增加中間表

對(duì)于經(jīng)常需要聯(lián)合查詢的表,可以建立中間表以提高查詢效率.

3.優(yōu)化插入記錄的速度

插入記錄時(shí),影響插入速度的主要是索引,唯一性校驗(yàn),一次插入記錄條數(shù)等.根據(jù)這些情況可以分別進(jìn)行優(yōu)化.

優(yōu)化MySQL服務(wù)器

1.優(yōu)化服務(wù)器硬件

針對(duì)性能瓶頸,提高硬件配置,可以提高數(shù)據(jù)庫的查詢和更新速度.

  • 配置較大的內(nèi)存.
  • 配置高速磁盤系統(tǒng),以減少讀盤的等待時(shí)間.
  • 合理分配磁盤IO.
  • 配置多處理器,MySQL是多線程的數(shù)據(jù)庫,多處理器可同時(shí)執(zhí)行多個(gè)線程.

2.優(yōu)化MySQL參數(shù)

優(yōu)化MySQL參數(shù)可以提高資源利用率,從而提高服務(wù)器性能.

以上就是MySQL數(shù)據(jù)庫查詢性能優(yōu)化策略的詳細(xì)內(nèi)容,更多關(guān)于MySQL查詢性能優(yōu)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySql的存儲(chǔ)過程學(xué)習(xí)小結(jié) 附pdf文檔下載

    MySql的存儲(chǔ)過程學(xué)習(xí)小結(jié) 附pdf文檔下載

    這篇文章主要是介紹mysql存儲(chǔ)過程的創(chuàng)建,刪除,調(diào)用及其他常用命令
    2012-03-03
  • MySQL Threads_running飆升與慢查詢的相關(guān)問題解決

    MySQL Threads_running飆升與慢查詢的相關(guān)問題解決

    這篇文章主要介紹了MySQL Threads_running飆升與慢查詢的問題解決,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-05-05
  • 詳解MySQL 聯(lián)合查詢優(yōu)化機(jī)制

    詳解MySQL 聯(lián)合查詢優(yōu)化機(jī)制

    MySQL 使用聯(lián)合的形式的地方會(huì)遠(yuǎn)遠(yuǎn)超過我們過去認(rèn)知的范疇?;旧?,它會(huì)認(rèn)為每個(gè)查詢都有聯(lián)合,而不僅僅是從兩張表中查出匹配的數(shù)據(jù)行,這包括了子查詢,甚至僅僅對(duì)單表的 SELECT 操作。因此,理解 MySQL 如何執(zhí)行聯(lián)合十分重要。
    2021-05-05
  • Centos7下無法遠(yuǎn)程連接mysql數(shù)據(jù)庫的原因與解決

    Centos7下無法遠(yuǎn)程連接mysql數(shù)據(jù)庫的原因與解決

    MySQL是由Oracle公司開發(fā)的開源SQL數(shù)據(jù)庫管理系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于在Centos7下無法遠(yuǎn)程連接mysql數(shù)據(jù)庫的原因與解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • 通過sysbench工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫的性能測(cè)試的方法

    通過sysbench工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫的性能測(cè)試的方法

    sysbench是一款壓力測(cè)試工具,可以測(cè)試系統(tǒng)的硬件性能,也可以用來對(duì)數(shù)據(jù)庫進(jìn)行基準(zhǔn)測(cè)試。這篇文章主要介紹了通過sysbench工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫的性能測(cè)試 ,需要的朋友可以參考下
    2019-07-07
  • 詳解mysql觸發(fā)器trigger實(shí)例

    詳解mysql觸發(fā)器trigger實(shí)例

    這篇文章主要為大家介紹了mysql觸發(fā)器trigger實(shí)例?,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • MySQL PHP語法淺析

    MySQL PHP語法淺析

    在本篇文章里小編給大家分享了關(guān)于MySQL PHP語法的相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)參考下。
    2019-02-02
  • mysql外鍵基本功能與用法詳解

    mysql外鍵基本功能與用法詳解

    這篇文章主要介紹了mysql外鍵基本功能與用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql外鍵的基本概念、功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解

    MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解

    這篇文章主要介紹了MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解,復(fù)合索引是一種索引,它包含多個(gè)字段,復(fù)合索引能夠使一個(gè)SQL查詢多個(gè)條件時(shí)也能走索引,提高查詢性能,需要的朋友可以參考下
    2023-11-11
  • MySQL優(yōu)化之表結(jié)構(gòu)優(yōu)化的5大建議(數(shù)據(jù)類型選擇講的很好)

    MySQL優(yōu)化之表結(jié)構(gòu)優(yōu)化的5大建議(數(shù)據(jù)類型選擇講的很好)

    很多人都將 數(shù)據(jù)庫設(shè)計(jì)范式 作為數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)“圣經(jīng)”,認(rèn)為只要按照這個(gè)范式需求設(shè)計(jì),就能讓設(shè)計(jì)出來的表結(jié)構(gòu)足夠優(yōu)化,既能保證性能優(yōu)異同時(shí)還能滿足擴(kuò)展性要求
    2014-03-03

最新評(píng)論