日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MySQLSQL優(yōu)化筆記的實(shí)際操作流程

以下的文章主要講述的是 MySQL SQL優(yōu)化的實(shí)際應(yīng)用筆記的實(shí)際操作流程,以及關(guān)于Mysql查詢使用 index 的問(wèn)題解決, 如果你對(duì)其相關(guān)的實(shí)際操作有興趣的話,你就可以對(duì)以下的文章點(diǎn)擊觀看了。

我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),我們努力開(kāi)拓更好的視野,通過(guò)不懈的努力,成都創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),小程序設(shè)計(jì),網(wǎng)站開(kāi)發(fā),技術(shù)開(kāi)發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫(kù)的技術(shù)開(kāi)發(fā)工程師。

Mysql的強(qiáng)制索引(Force Index)都為我們做了哪些優(yōu)化?

mysql5下大數(shù)據(jù)量查詢優(yōu)化的問(wèn)題

推薦圈子: Database圈子

更多相關(guān)推薦 一般使用SQL的時(shí)候你是不會(huì)去想到優(yōu)化。但是面對(duì)一個(gè)有MySQL SQL性能問(wèn)題的數(shù)據(jù)庫(kù)時(shí),我們應(yīng)該如何入手進(jìn)行系統(tǒng)的分析,使得能夠盡快定位問(wèn)題SQL,并且盡快解決問(wèn)題。

1.使用show status 命令了解各種MySQL SQL的執(zhí)行頻率

引用

例如在Mysql的Cline上輸入

show status like 'Com_%';

顯示的是一些:Com_xxx.

Com_xxx 表示每個(gè)xx語(yǔ)句執(zhí)行的次數(shù)。通常情況下我們比較關(guān)注如下一些操作:

引用

Com_select:執(zhí)行select操作的次數(shù)

Com_insert:執(zhí)行Insert操作的次數(shù),對(duì)于批量插入的INSERT操作,只累加一次

Com_update:執(zhí)行update操作的次數(shù)

Com_delete:執(zhí)行Delete操作的次數(shù)

上面這些參數(shù)對(duì)于所有存儲(chǔ)引擎的表操作都會(huì)進(jìn)行累加。下面有些參數(shù)只針對(duì)InnoDB存儲(chǔ)引擎的,累加的算法也有點(diǎn)不一樣。

引用

Innodb_rows_read:select查詢返回的行數(shù)

Innodb_rows_inserted:執(zhí)行INSERT操作插入的行數(shù)

Innodb_rows_updated:執(zhí)行Update操作更新的行數(shù)

Innodb_rows_deleted:執(zhí)行Delete操作刪除的行數(shù)

通過(guò)上面的一些參數(shù),我們可以了解當(dāng)前數(shù)據(jù)庫(kù)的應(yīng)用是以插入為主還是以查詢?yōu)橹?。以及各種類型的MySQL SQL大致的執(zhí)行比例是多少。對(duì)于更新操作的計(jì)數(shù),是對(duì)執(zhí)行次數(shù)的計(jì)數(shù),不管提交還是回滾都會(huì)進(jìn)行累加。

對(duì)于事務(wù)型的應(yīng)用,通過(guò)Com_commit和Com_rollback進(jìn)行分析。如果回滾操作非常頻繁那么要思考下是不是編寫存在問(wèn)題。

下面有幾個(gè)參數(shù)用于了解數(shù)據(jù)庫(kù)的基本情況

引用

Connections:試圖連接Mysql服務(wù)器的次數(shù)(執(zhí)行的命令是:show status like 'Con_%';)

Uptime: 服務(wù)器工作時(shí)間(執(zhí)行的命令是:show status like 'Up_%';)

Slow_queries:慢查詢的次數(shù)(執(zhí)行的命令是:show status like 'Slow_%';)

2. 定位執(zhí)行效率較低的MySQL SQL語(yǔ)句

要想定義效率較低的SQL可以按照下面兩種方式試試。

引用

1. 通過(guò)慢查詢?nèi)罩径ㄎ荒切﹫?zhí)行效率較低的SQL語(yǔ)句,用 --log-slow-queries[=file_name]選項(xiàng)啟動(dòng)時(shí),mysqld寫一個(gè)包含所有執(zhí)行時(shí)間超過(guò)long_query_time秒的SQL語(yǔ)句的日志文件。

2. 慢查詢?nèi)罩驹诓樵兘Y(jié)束以后才記錄,所以在應(yīng)用反映執(zhí)行效率出現(xiàn)問(wèn)題的時(shí)候進(jìn)行查詢慢查詢?nèi)罩静⒉荒芏ㄎ粏?wèn)題,可以使show processlist 命令查看當(dāng)前MySQL在進(jìn)行的線程,包括線程的狀態(tài),是否鎖表等,可以實(shí)時(shí)地查看SQL的執(zhí)行情況,同時(shí)對(duì)一些鎖表操作進(jìn)優(yōu)化。

3. 使用EXPLAIN分析低效SQL的執(zhí)行計(jì)劃。

在查詢到效率低的MySQLSQL語(yǔ)句后,那我們可以使用explain或者DESC命令獲取Myswl如何執(zhí)行SELECT語(yǔ)句的信息,包括在Select語(yǔ)句執(zhí)行過(guò)程中表如何連接和連接的順序。

例如你想計(jì)數(shù)xxxx年公司的銷售額,那么需要操作sales和comapny table,并對(duì)money字段進(jìn)行sum操作??纯丛趺词褂胑xplain:

引用

explain select sum(moneys) from sales a company b where a.company_id = b.id and a.year=XXXX \G;(注意加上\G是為了更好的看)

顯示如下:

 
 
 
  1. *********************** 1. row***************************   
  2. id: 1   
  3. select_type: SIMPLE   
  4. table: a   
  5. type: ALL   
  6. possible_keys: NULL   
  7. key:NULL   
  8. key_len: NULL   
  9. ref: NULL   
  10. rows:1000   
  11. Extra: Using where   
  12. *********************** 2. row***************************   
  13. id: 2   
  14. select_type: SIMPLE   
  15. table: b   
  16. type: ref   
  17. possible_keys: ind_company_id   
  18. key:ind_comapany_id   
  19. key_len: 5   
  20. ref: sakila.a.company_id   
  21. rows:1   
  22. Extra: Using where;Using index  

 

下面解釋下每個(gè)列的含義:

引用

select_type: 表示SELECT的類型,常見(jiàn)的取值為SIMPLE(簡(jiǎn)單表,不使用表連接或者子查詢)、PRIMARY(主查詢,即外層的查詢)、UNION、SUBQUERY

table: 輸出結(jié)果集的表

type: 表示表的連接類型,性能由好到差的類型類型為

(System(表中僅有一行,即常量表),

const(單表中最多有一個(gè)匹配行),

eq_ref(對(duì)于前面的每一行,在此表中只查詢一條記錄),

ref(使用普通的索引),

ref_or_null(和ref類似,但是條件中包含對(duì)于NULL查詢),

index_merge(索引合并優(yōu)化),

unique_subquery(in的后面是一個(gè)查詢主鍵字段的子查詢),

index_subquery(類似unique_subquery,主要是in的后面是查詢非***索引字段的子查詢),

range(單表中的范圍查詢),

index(對(duì)于當(dāng)前的每一行,都通過(guò)查詢索引來(lái)得到數(shù)據(jù)),

all(對(duì)于當(dāng)前的每一行,都通過(guò)全表掃描來(lái)得到數(shù)據(jù)))

possible_keys: 表示查詢時(shí),可能使用的索引

key:表示實(shí)際使用的索引

key_len:索引字段的長(zhǎng)度

rows:掃描行的數(shù)量

Extra:執(zhí)行情況的說(shuō)明和描述

以上的相關(guān)內(nèi)容就是對(duì)MySQL SQL優(yōu)化的筆記的介紹,望你能有所收獲。


當(dāng)前題目:MySQLSQL優(yōu)化筆記的實(shí)際操作流程
網(wǎng)站鏈接:http://www.dlmjj.cn/article/cocicod.html