日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql优化的几种方法_详解mysql数据库不同类型sql语句优化方法

發(fā)布時(shí)間:2025/3/21 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql优化的几种方法_详解mysql数据库不同类型sql语句优化方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

分享一下之前筆記記錄的一些不同類型sql語(yǔ)句優(yōu)化方法,針對(duì)mysql。

主要分成優(yōu)化INSERT語(yǔ)句、優(yōu)化ORDER BY語(yǔ)句、優(yōu)化GROUP BY 語(yǔ)句、優(yōu)化嵌套查詢、優(yōu)化OR語(yǔ)句這幾個(gè)方面,可能寫(xiě)的不是很全,大家有啥好想法可以在下方留言哦。


優(yōu)化INSERT語(yǔ)句

當(dāng)進(jìn)行數(shù)據(jù)insert時(shí),mysql客戶端大致要經(jīng)過(guò)的步驟如下:

1、客戶端連接mysql服務(wù)器

2、客戶端發(fā)送INSERT語(yǔ)句到服務(wù)器

3、服務(wù)器解析INSERT語(yǔ)句

4、服務(wù)器增加數(shù)據(jù)

5、服務(wù)器給增加的記錄添加索引

6、服務(wù)器關(guān)閉連接

優(yōu)化INSERT的常用方法:

1、如果從同一客戶端插入很多行數(shù)據(jù)到mysql服務(wù)器,一次性插入多個(gè)值將大大縮短客戶端與數(shù)據(jù)庫(kù)服務(wù)器之間的連接和關(guān)閉等操作,如:

insert into books values (1,'book1'),(2,'book2'),(3,'book3');

當(dāng)從一個(gè)文本文件裝載一個(gè)表時(shí),使用LOAD DATA INFILE加載數(shù)據(jù)往往比使用很多INSERT語(yǔ)句效率至少提高20倍。

2、對(duì)于myisam類型的表,如果從不同客戶端插入很多行,可使用INSERT DELAYED語(yǔ)句提升執(zhí)行速度。

INSERT DELAYED INTO 是客戶端提交數(shù)據(jù)給mysql服務(wù)器,mysql服務(wù)器返回ok狀態(tài)給客戶端,而這并不是將數(shù)據(jù)立即執(zhí)行插入到表,而是存儲(chǔ)在內(nèi)存里面等待排隊(duì),直至mysql服務(wù)器有空閑時(shí)再插入。

3、鎖定表以加速插入數(shù)據(jù)。

lock tables test write;

insert into test values (3,'t3'),(4,'t4');

unlock tables

如果不加鎖定表,每一次執(zhí)行INSERT語(yǔ)句完成后,索引緩沖區(qū)都會(huì)被寫(xiě)到磁盤(pán)上,而加入鎖定后索引緩沖區(qū)僅被寫(xiě)到磁盤(pán)上一次。


優(yōu)化ORDER BY語(yǔ)句

1、對(duì)ORDER BY + LIMIT 組合的索引優(yōu)化,sql形式 如下:

SELECT [column1] ... FROM [TABLE] ORDER BY [sort ] LIMIT [offset ],[LIMIT];

優(yōu)化:在[sort]上建立索引。

2、對(duì)WHERE + ORDER BY +LIMIT組合的索引優(yōu)化,sql形式 如下:

SELECT [column1] ... FROM [TABLE] WHERE [columnX]=[value] ORDER BY [sort ] LIMIT [offset ],[LIMIT];

此時(shí)如果對(duì)[sort]添加索引,效率不是很高,可采用更高效的方法建立一個(gè)聯(lián)合索引(columnX,sort)

3、不要對(duì)where和order by的選項(xiàng)使用表達(dá)式或者函數(shù),sql形式如下:

SELECT * FROM [TABLE] ORDER BY YEAR(date) LIMIT 0,30;

下面幾種情況不應(yīng)該使用索引:

1、order by的字段混合使用asc和desc

select * from ordertable order by col1 desc ,col2 asc;

2、where子句使用的字段和order by的字段不一致

select * from ordertable where col1=1 order by col2;

3、對(duì)不同的關(guān)鍵字使用order by排序

select * from ordertable order by col1,col2;

優(yōu)化GROUP BY 語(yǔ)句

使用group by語(yǔ)句時(shí),mysql會(huì)對(duì)符合的結(jié)果自動(dòng)排序,通過(guò)掃描整個(gè)表并創(chuàng)建一個(gè)新的臨時(shí)表,表中每個(gè)組的所有行應(yīng)為連續(xù)的,然后使用該臨時(shí)表來(lái)找到組并應(yīng)用累計(jì)行數(shù)。在某些情況下,mysql可以通過(guò)索引訪問(wèn)而不用臨時(shí)表。

通過(guò)制定order by null可以禁止排序,從而節(jié)省耗損。

#沒(méi)有優(yōu)化

explain select id,count(data) from test group by id;

#使用order by null優(yōu)化

explain select id,count(data) from test group by id order by null ;

優(yōu)化嵌套查詢

mysql從4.1版本開(kāi)始支持子查詢,使用子查詢可進(jìn)行select語(yǔ)句的嵌套查詢,即一個(gè)select查詢的結(jié)果作為另一個(gè)select語(yǔ)句的條件。執(zhí)行子查詢時(shí),mysql需要為內(nèi)層查詢語(yǔ)句的查詢結(jié)果建立一個(gè)臨時(shí)表,然后外層查詢語(yǔ)句從臨時(shí)表中查詢記錄,查詢完畢后,在撤銷(xiāo)這些臨時(shí)表,因此子查詢速度會(huì)受到一定影響。

在mysql中可以使用連接(JOIN)查詢來(lái)替代子查詢,連接查詢不需要建立臨時(shí)表,其速度比子查詢快,如果查詢中使用索引的話,性能會(huì)更好。連接之所以更有效率,是因?yàn)閙ysql不需要在內(nèi)存中創(chuàng)建臨時(shí)表來(lái)完成查詢工作。

子查詢:

explain select * from emp where dept_id not in (select id from dept);

連接:

explain select * from emp left join dept on emp.dept_id=dept.id where emp.dept_id is null;

優(yōu)化OR語(yǔ)句

對(duì)于使用OR條件的子查詢,如果要使用索引,則OR之間的每個(gè)條件列都必須使用索引。

explain select * from ortest where data1=2 or data2=3;create index idx_data1 on ortest(data1);create index idx_data2 on ortest(data2);

#創(chuàng)建索引后,mysql在處理包含or子查詢中,是對(duì)or的各個(gè)字段在查詢結(jié)果之后在進(jìn)行UNION操作。

explain select * from ortest where data1=2 or data2=3;

平時(shí)都是想到哪寫(xiě)到哪,所以可能會(huì)比較雜,大家有什么好的想法可以提一下哦,一起交流

后面會(huì)分享更多DBA方面內(nèi)容,感興趣的朋友可以關(guān)注下!

總結(jié)

以上是生活随笔為你收集整理的mysql优化的几种方法_详解mysql数据库不同类型sql语句优化方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品一区二区三区新线路 | 亚洲h片| 精品在线视频播放 | 午夜亚洲 | 国产一道本 | 久久9久久 | 色网站在线免费观看 | 亚洲激情午夜 | 91色国产| 中文字幕在线成人 | 久99热 | 国产美女网站 | 91九色精品 | 青青青在线免费观看 | 国产成人精品在线播放 | 99热这里只有精品在线 | 99re免费视频精品全部 | 激情综合图区 | 亚洲国产精品成人无久久精品 | 欧美色交 | xxxⅹ少妇少妇xxxx | 日本不卡二区 | 亚洲视频123| 国产精品久久久久久久久毛片 | 少妇网站在线观看 | 久久久久国产一区二区三区潘金莲 | 韩国日本美国免费毛片 | 国产精品露脸视频 | 亚洲av永久无码精品 | 夜间福利在线 | 国产中文字幕乱人伦在线观看 | 99国产精品一区二区 | 在线看片国产 | 欧美丰满熟妇bbbbbb | 精品免费 | 动漫美女舌吻 | 污污内射在线观看一区二区少妇 | 欧美xxxx胸大| 国产成人精品一区二区三区无码熬 | 好男人www社区在线视频夜恋 | 欧美亚洲免费 | 黄色网页免费 | 成人福利影院 | 91免费视频网址 | 美女福利在线 | 性激烈视频在线观看 | 午夜电影在线播放 | 欧美一区二区影院 | 国产免费叼嘿网站免费 | 精品一区二区在线观看 | 国产精品丝袜视频 | 美女色诱男人激情视频 | 手机看片日韩在线 | 亚洲综合射 | 黄色wwwww| 国产成人中文字幕 | 亚洲综合欧美 | 伊人精品久久 | xxxⅹ少妇少妇xxxx | 操女人视频网站 | 欧美大片在线观看 | 手机免费看av片 | 大尺度做爰床戏呻吟舒畅 | 成人a级片 | 主播av在线 | 男人舔女人下部高潮全视频 | 一二三四视频社区在线 | av电影在线观看网址 | 亚洲第一福利网站 | 欧美图片一区二区 | 国产黄在线 | 欧美精品xxx| 国产情侣免费视频 | 久久久久99精品 | 我的公把我弄高潮了视频 | 久久国产精品久久久久久 | 老女人丨91丨九色 | 国产精品夜夜夜爽阿娇 | 超碰在 | 亚洲春色另类 | 亚洲啪 | 中日韩在线观看视频 | 虫族全黄h全肉污文 | 亚洲精品福利 | 91精品观看 | 亚洲国产精品无码久久久久高潮 | 91免费高清在线观看 | 国产欧美一区二区三区精华液好吗 | 最新版天堂资源在线 | 久草一本 | 日本黄色中文字幕 | 欧美午夜性生活 | 极品美女扒开粉嫩小泬 | 在线免费成人网 | 国产做爰视频免费播放 | 另类ts人妖一区二区三区 | xx视频在线观看 | 下面一进一出好爽视频 | 北条麻妃久久 |