国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL】sql如何優(yōu)化?

這篇具有很好參考價值的文章主要介紹了【MySQL】sql如何優(yōu)化?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、優(yōu)化步驟

(1)通過SQL監(jiān)控、請求、日志等找出耗時的SQL語句;

(2)使用Explain方式查看SQL耗時的具體原因;

(3)根據(jù)實際情況解決:索引、緩存、左右連接

二、Explain

  • select_type:簡單查詢or復(fù)雜查詢?simple、primary、subquery、deriveer、union。
  • type:SQL關(guān)聯(lián)類型,system > const > eq_ref > ref > range > index > All。一般達(dá)到range就行,最好達(dá)到ref級別。
  • keys和key_len:具體使用到哪些索引及索引長度。
  • extra:記錄額外信息,如使用覆蓋索引(Using index)、使用臨時表、使用外部排序(Using filesort)、使用某些聚合函數(shù)等等.

Type級別

system/const:如id=1這種常量 ;

eq_ref:主鍵或聯(lián)合主鍵被使用且返回一條;

ref:使用普通索引唯一索引的部分前綴,可能找到多個值(如:name='zhangsan');

range:使用一個索引檢索某個范圍,如in、between、大于等等操作;

index:掃描全索引拿到結(jié)果,一般是掃描某個二級索引(唯一索引、普通索引、前綴索引等索引屬于二級索引)。

ALL:全表掃描。

三、索引

? ? ? ? 索引本質(zhì)上是方便MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。

(一)索引的分類

  • 數(shù)據(jù)結(jié)構(gòu)維度: B+樹、Hash索引、全文索引、R-Tree索引。
  • 物理存儲維度: 聚集索引、非聚集索引。
  • 邏輯存儲維度: 主鍵索引、普通索引、聯(lián)合索引、唯一索引、空間索引。

唯一索引:索引值唯一,允許有null值。

主鍵索引:特殊的唯一索引,一個表只能有一個主鍵索引,且不能有null值。

聯(lián)合索引:在多個字段上創(chuàng)建索引,遵循最左前綴原則。

聚簇索引:正文內(nèi)容就是按照一定規(guī)則排序的目錄,如B+樹,按照索引排序,一個表只能有一個,存儲記錄物理連續(xù)。

非聚簇索引:目錄是目錄,正文純粹是正文,不按照索引排序,一個表可以有多個,存儲記錄物理不連續(xù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-730347.html

(二)索引使用的注意事項

  • 索引不能包含null,否則無效;
  • 索引上不能使用not in和<>操作;
  • 不要在索引列上進(jìn)行運算,會導(dǎo)致索引失效全表掃描;
  • 查詢使用多個列時可以建組合索引,查詢時要符合最左前綴原則;
  • 列長度過長時使用短索引,比如varchar2(100)的列可以使用列的前10個字段作索引;
  • 控制索引的數(shù)量,過多的索引會消耗性能。

四、細(xì)節(jié)

  • in/exists:in(適合子表比主表小的情況)、exists(適合子表比主表大的情況),盡可能讓小表驅(qū)動大表。
  • not in/not exists:not in(內(nèi)外表全表掃描),not exists(無論跟大表小表都會用到表索引)。
  • =和!=:盡量不使用!=避免全表掃描。
  • like:左模糊匹配使用索引,全模糊匹配不使用索引。
  • select:避免使用select *。
  • union all/union:union需去重效率低,union all不去重效率高。
  • 用連接代替子查詢,避免子查詢產(chǎn)生的臨時表。
  • join:join的表不宜太多。left join是左表驅(qū)動右表,inner join會自動小表驅(qū)動大表。

到了這里,關(guān)于【MySQL】sql如何優(yōu)化?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【MySQL數(shù)據(jù)庫】MySQL 高級SQL 語句一

    【MySQL數(shù)據(jù)庫】MySQL 高級SQL 語句一

    ) % :百分號表示零個、一個或多個字符 _ :下劃線表示單個字符 ‘A_Z’:所有以 ‘A’ 起頭,另一個任何值的字符,且以 ‘Z’ 為結(jié)尾的字符串。例如,‘ABZ’ 和 ‘A2Z’ 都符合這一個模式,而 ‘AKKZ’ 并不符合 (因為在 A 和 Z 之間有兩個字符,而不是一個字符)。 ‘ABC%’

    2024年02月09日
    瀏覽(1352)
  • 【性能優(yōu)化】MySql數(shù)據(jù)庫查詢優(yōu)化方案

    【性能優(yōu)化】MySql數(shù)據(jù)庫查詢優(yōu)化方案

    了解系統(tǒng)運行效率提升的整體解決思路和方向 學(xué)會MySQl中進(jìn)行數(shù)據(jù)庫查詢優(yōu)化的步驟 學(xué)會看慢查詢、執(zhí)行計劃、進(jìn)行性能分析、調(diào)優(yōu) ?關(guān)于這個問題,我們通常首先考慮的是硬件升級,畢竟服務(wù)器的內(nèi)存、CPU、磁盤IO速度 、網(wǎng)絡(luò)速度等都是制約我們系統(tǒng)快慢的首要因素。硬

    2024年02月03日
    瀏覽(27)
  • Mysql數(shù)據(jù)庫結(jié)構(gòu)優(yōu)化匯總

    ? ? ?設(shè)計表以最大限度地減少其在磁盤上的空間。這可以減少寫入磁盤和從磁盤讀取的數(shù)據(jù)量,從而帶來巨大的改進(jìn)。較小的表通常需要較少的主內(nèi)存,而它們的內(nèi)容在查詢執(zhí)行過程中被主動處理。表數(shù)據(jù)的任何空間減少也會導(dǎo)致更小的索引可以更快地處理。 盡可能使用最

    2024年02月07日
    瀏覽(23)
  • 數(shù)據(jù)庫應(yīng)用:MySQL數(shù)據(jù)庫SQL高級語句與操作

    數(shù)據(jù)庫應(yīng)用:MySQL數(shù)據(jù)庫SQL高級語句與操作

    目錄 一、理論 1.克隆表與清空表 2.SQL高級語句 3.SQL函數(shù) 4.SQL高級操作 5.MySQL中6種常見的約束 二、實驗 ?1.克隆表與清空表 2.SQL高級語句 3.SQL函數(shù) 4.SQL高級操作 5.主鍵表和外鍵表 ?三、總結(jié) 克隆表:將數(shù)據(jù)表的數(shù)據(jù)記錄生成到新的表中。 (1)克隆表 ①?先創(chuàng)建再導(dǎo)入 ②?創(chuàng)建

    2024年02月13日
    瀏覽(101)
  • MySQL數(shù)據(jù)庫性能優(yōu)化技巧介紹

    MySQL數(shù)據(jù)庫性能優(yōu)化技巧介紹

    MySQL是目前最流行和廣泛使用的開源關(guān)系型數(shù)據(jù)庫之一,隨著數(shù)據(jù)量的增長和訪問負(fù)載的提高,優(yōu)化數(shù)據(jù)庫性能變得至關(guān)重要,以確保系統(tǒng)能夠高效地處理大量的并發(fā)請求。本文將記錄一些MySQL數(shù)據(jù)庫性能優(yōu)化的技巧,提高數(shù)據(jù)庫的運行效率,提升系統(tǒng)性能。 對于MySQL,最簡單

    2024年02月08日
    瀏覽(51)
  • MYSQL數(shù)據(jù)庫故障排除與優(yōu)化

    目錄 MySQL 單實例故障排查 MySQL 主從故障排查 MySQL 優(yōu)化 故障現(xiàn)象 1 ERROR?? ?2002?? ?(HY000):?? ?Can\\\'t?? ?connect?? ?to?? ?local?? ?MySQL?? ?server?? ?through?? ?socket \\\'/data/mysql/mysql.sock\\\' (2) 問題分析:以上這種情況一般都是數(shù)據(jù)庫未啟動或者數(shù)據(jù)庫端口被防火墻攔截導(dǎo)致。 解

    2024年04月11日
    瀏覽(23)
  • MySQL數(shù)據(jù)庫的優(yōu)化技術(shù)二

    MySQL數(shù)據(jù)庫的優(yōu)化技術(shù)二

    縱論 對mysql優(yōu)化時一個綜合性的技術(shù),主要包括? 表的設(shè)計合理化(符合3NF) 添加適當(dāng)索引(index)? [ 四種: 普通索引、主鍵索引、唯一索引unique、全文索引 ] 分表技術(shù)( 水平分割、垂直分割 ) 水平分割根據(jù)一個標(biāo)準(zhǔn)重復(fù)定義幾個字段值相同,表名稱不同的表,表的結(jié)構(gòu)相同 讀(

    2024年02月11日
    瀏覽(17)
  • MySQL數(shù)據(jù)庫——MySQL優(yōu)化服務(wù)器,提高M(jìn)ySQL的運行速度!

    MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),優(yōu)化MySQL服務(wù)器可以顯著提高數(shù)據(jù)庫的性能和運行速度。在下面的回答中,我將介紹一些常見的MySQL優(yōu)化策略和技術(shù),以幫助提高M(jìn)ySQL服務(wù)器的性能。 1、優(yōu)化數(shù)據(jù)庫設(shè)計: 正確設(shè)計數(shù)據(jù)庫結(jié)構(gòu),使用適當(dāng)?shù)臄?shù)據(jù)類型、索引和約束

    2024年02月07日
    瀏覽(38)
  • MySQL基礎(chǔ)篇——MySQL數(shù)據(jù)庫客戶端連接,數(shù)據(jù)模型,SQL知識

    MySQL基礎(chǔ)篇——MySQL數(shù)據(jù)庫客戶端連接,數(shù)據(jù)模型,SQL知識

    作者簡介:一名云計算網(wǎng)絡(luò)運維人員、每天分享網(wǎng)絡(luò)與運維的技術(shù)與干貨。? ?座右銘:低頭趕路,敬事如儀 個人主頁:網(wǎng)絡(luò)豆的主頁?????? 目錄 前言 一.客戶端連接MySQL 二. 數(shù)據(jù)模型 1.關(guān)系型數(shù)據(jù)庫(RDBMS) 2.數(shù)據(jù)模型 三.SQL 1.SQL通用語法 2.SQL分類 3.數(shù)據(jù)庫操作 1). 查

    2024年02月06日
    瀏覽(25)
  • 【數(shù)據(jù)庫】MySQL 高級(進(jìn)階) SQL 語句

    【數(shù)據(jù)庫】MySQL 高級(進(jìn)階) SQL 語句

    location表格創(chuàng)建 store_info表格創(chuàng)建 顯示表格中一個或數(shù)個字段的所有數(shù)據(jù)記錄 不顯示重復(fù)的數(shù)據(jù)記錄 按照條件進(jìn)行查詢 在已知的字段數(shù)據(jù)取值范圍內(nèi)取值 另外還有not in命令,用法一致,表示顯示不在指定范圍內(nèi)的字段的值。 在兩個字段數(shù)據(jù)值之間取值,包含兩邊字段的數(shù)據(jù)

    2024年02月09日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包