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

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四)

這篇具有很好參考價(jià)值的文章主要介紹了MySQL查詢性能優(yōu)化——SQL優(yōu)化(四)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?目錄

1、批量插入數(shù)據(jù)

1.1 linux環(huán)境下

1.1.1 開啟文件讀取

1.1.2 load數(shù)據(jù)

1.2 windows環(huán)境下

2、order by優(yōu)化

2.1 最左前綴

3、group by

3.1 最左前綴

4、count優(yōu)化

5、or條件優(yōu)化


? 在上一期說到索引的使用,這期來聊一下SQL優(yōu)化,也是平常寫SQL的時(shí)候常用到的。

1、批量插入數(shù)據(jù)

在前幾期也有聊到過批量插入數(shù)據(jù)的方法,例如insert ... select...,select ... into,數(shù)據(jù)量到達(dá)百萬級(jí)時(shí)效率也會(huì)打折扣,此時(shí)可以使用MySQL提供的load指令插入。

1.1 linux環(huán)境下

?1.1.1 開啟文件讀取

首先查看mysql是否開啟了支持讀取本地文件:

show global variables like '%local_infile%';

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

可以看到ON,說明默認(rèn)開啟了文件讀取。

手動(dòng)開啟:set global local_infile=1;

1.1.2 load數(shù)據(jù)

load data local infile '要加載的文件路徑' into table target_table。

target_table目標(biāo)表結(jié)構(gòu)需要與源文件格式一致。

1.2 windows環(huán)境下

windows下使用load指令加載可能會(huì)出現(xiàn)問題,源文件路徑格式可能會(huì)存在問題,推薦使用可視化工具自帶的導(dǎo)入功能,使用默認(rèn)選項(xiàng)一路點(diǎn)擊“下一步”到結(jié)束。

2、order by優(yōu)化

先來看下當(dāng)前表tb_user索引的情況:

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

當(dāng)前除了主鍵外沒有任何索引,我們先來驗(yàn)證一下沒有索引的情況:

explain select id,age from tb_user order by age;

explain select id,phone from tb_user order by phone;

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

可以看到兩條查詢都沒有用到索引。?

Extra:Using filesort:所有不是通過索引返回排序結(jié)果的都叫filesort排序。

2.1 最左前綴

給age和phone添加聯(lián)合索引:

create index idx_age_phone on tb_user(age,phone);

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

添加了聯(lián)合索引后,只要查詢覆蓋索引且符合最左前綴原則,都不會(huì)回表。

explain select age,phone from tb_user group by age,phone;

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

3、group by

3.1 最左前綴

使用group by也是要遵守最左前綴原則:

explain select age,phone from tb_user group by age,phone;

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

4、count優(yōu)化

按照效率排序,count(字段) < count(主鍵 id) < count(1) ≈ count()。

所以盡量使用 count(*)

5、or條件優(yōu)化

條件之間用到or,則兩個(gè)條件都需要有索引。

explain select age,phone from tb_user where age='31' or phone='17799990023';

MySQL查詢性能優(yōu)化——SQL優(yōu)化(四),數(shù)據(jù)庫,性能優(yōu)化,mysql

推薦閱讀:

? ? MySQL查詢性能優(yōu)化——索引的使用(三)文章來源地址http://www.zghlxwxcb.cn/news/detail-827874.html

到了這里,關(guān)于MySQL查詢性能優(yōu)化——SQL優(yōu)化(四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包