真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql中select和where子句優(yōu)化的方法有哪些

小編給大家分享一下MySQL中select和where子句優(yōu)化的方法有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)擁有10多年成都網(wǎng)站建設(shè)工作經(jīng)驗(yàn),為各大企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),對(duì)于網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、App定制開發(fā)、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名申請(qǐng)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等網(wǎng)站化運(yùn)作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項(xiàng)目的能力。

數(shù)據(jù)庫(kù)優(yōu)化:

1.可以在單個(gè)SQL語(yǔ)句,整個(gè)應(yīng)用程序,單個(gè)數(shù)據(jù)庫(kù)服務(wù)器或多個(gè)聯(lián)網(wǎng)數(shù)據(jù)庫(kù)服務(wù)器的級(jí)別進(jìn)行優(yōu)化
2.數(shù)據(jù)庫(kù)性能取決于數(shù)據(jù)庫(kù)級(jí)別的幾個(gè)因素,例如表,查詢和配置設(shè)置
3.在數(shù)據(jù)庫(kù)級(jí)別進(jìn)行優(yōu)化,在硬件級(jí)別進(jìn)行優(yōu)化,平衡可移植性和性能
4.合適的結(jié)構(gòu),合適的數(shù)據(jù)類型;執(zhí)行頻繁更新的應(yīng)用程序大量表(少列);分析大量數(shù)據(jù)的應(yīng)用程序少量表(多列);選擇合適的存儲(chǔ)引擎和索引;
5.壓縮適用于InnoDB表的各種工作負(fù)載,以及只讀MyISAM表
6.選擇合適的鎖定策略;InnoDB存儲(chǔ)引擎可以處理大多數(shù)鎖定問題
7.配置的主要內(nèi)存區(qū)域是InnoDB緩沖池和MyISAM密鑰緩存。
8.優(yōu)化select語(yǔ)句,這方面技巧同樣適用于其他帶where的delete語(yǔ)句等,在where子句的列上設(shè)置索引;索引對(duì)于引用多個(gè)列如join和外鍵尤其重要

select where子句優(yōu)化:

1.調(diào)整查詢的結(jié)構(gòu),例如函數(shù)調(diào)用,為結(jié)果集中的每一行只調(diào)用一次,為表中的每一行只調(diào)用一次
2.減少查詢中的全表掃描數(shù)
3.定期使用ANALYZE TABLE語(yǔ)句使表統(tǒng)計(jì)信息保持最新
4.了解特定于每個(gè)表的存儲(chǔ)引擎的調(diào)優(yōu)技術(shù),索引技術(shù)和配置參數(shù)
5.優(yōu)化InnoDB表的單查詢事務(wù)
6.通過閱讀EXPLAIN計(jì)劃并調(diào)整索引,WHERE子句,連接子句等來調(diào)查特定查詢的內(nèi)部詳細(xì)信息
7.調(diào)整MySQL用于緩存的內(nèi)存區(qū)域的大小和屬性。通過有效使用InnoDB緩沖池,MyISAM密鑰緩存和MySQL查詢緩存
8.where條件,去掉不必要的括號(hào),恒定折疊,恒定條件去除,減少不必要的邏輯
9.被索引使用的常量表達(dá)式只計(jì)算一次
10.count(*)直接從表信息中查詢;當(dāng)只有一張表時(shí),not null表達(dá)式也是這樣
11.如果不使用GROUP BY或聚合函數(shù)(COUNT(),MIN()等),HAVING將與WHERE合并
12.常量表,只有一行或空表;where子句作用在primary key或者unique索引上
13.如果ORDER BY和GROUP BY子句中的所有列都來自同一個(gè)表,則在連接時(shí)首選該表
14.如果order by子句和group by子句不一樣,或來自不同的表,則會(huì)創(chuàng)建臨時(shí)表
15.如果使用SQL_SMALL_RESULT修飾符,MySQL將使用內(nèi)存中的臨時(shí)表
16.MySQL甚至無需咨詢數(shù)據(jù)文件即可只從索引中讀取行
17.在輸出每一行之前,將跳過與HAVING子句不匹配的行

以下表被用作常量表:

SELECT * FROM t WHERE primary_key=1;
SELECT * FROM t1,t2  
WHERE t1.primary_key=1 AND t2.primary_key=t1.id;

以下查詢運(yùn)行速度非常快:

SELECT COUNT(*) FROM tbl_name;
SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;
SELECT MAX(key_part2) FROM tbl_name
  WHERE key_part1=constant;
SELECT ... FROM tbl_name
  ORDER BY key_part1,key_part2,... LIMIT 10;
SELECT ... FROM tbl_name
  ORDER BY key_part1 DESC, key_part2 DESC, ... LIMIT 10;

假設(shè)索引列是數(shù)值型,以下查詢僅用到了索引樹:

SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;
SELECT COUNT(*) FROM tbl_name
  WHERE key_part1=val1 AND key_part2=val2;
  SELECT key_part2 FROM tbl_name GROUP BY key_part1;

以下查詢使用索引按排序順序取回?cái)?shù)據(jù),不需要單獨(dú)排序

SELECT ... FROM tbl_name
  ORDER BY key_part1,key_part2,... ;
SELECT ... FROM tbl_name
   ORDER BY key_part1 DESC, key_part2 DESC, ... ;

以上是“mysql中select和where子句優(yōu)化的方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享文章:mysql中select和where子句優(yōu)化的方法有哪些
文章URL:http://weahome.cn/article/jepspj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部