成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL SQL優化的實現并不難

數據庫 MySQL
我們今天主要向大家講述的是MySQL SQL優化的實際操作方案和MySQL數據庫查詢所使用index的問題,以下就是對這些內容的詳細介紹。

此文章主要向大家描述的是MySQL SQL優化的實際操作方案,同時還涉及一個MySQL數據庫查詢所使用index的問題,MySQL數據庫的強制索引(Force Index)能實現哪些優化?以下的文章都有答案。

 

MySQL5下大數據量查詢優化的問題

 

推薦圈子: Database圈子

更多相關推薦 一般使用MySQL SQL的時候你是不會去想到優化。但是面對一個有SQL性能問題的數據庫時,我們應該如何入手進行系統的分析,使得能夠盡快定位問題SQL,并且盡快解決問題。

 

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

引用

例如在MySQL的Cline上輸入

show status like 'Com_%';

 

 

顯示的是一些:Com_xxx.

 

Com_xxx 表示每個xx語句執行的次數。通常情況下我們比較關注如下一些操作:

 

引用

Com_select:執行select操作的次數

Com_insert:執行Insert操作的次數,對于批量插入的INSERT操作,只累加一次

 

Com_update:執行update操作的次數

 

Com_delete:執行Delete操作的次數

 

 

上面這些參數對于所有存儲引擎的表操作都會進行累加。下面有些參數只針對InnoDB存儲引擎的,累加的算法也有點不一樣。

 

引用

Innodb_rows_read:select查詢返回的行數

Innodb_rows_inserted:執行INSERT操作插入的行數

 

Innodb_rows_updated:執行Update操作更新的行數

 

Innodb_rows_deleted:執行Delete操作刪除的行數

 

 

通過上面的一些參數,我們可以了解當前數據庫的應用是以插入為主還是以查詢為主。以及各種類型的MySQL SQL大致的執行比例是多少。對于更新操作的計數,是對執行次數的計數,不管提交還是回滾都會進行累加。

 

對于事務型的應用,通過Com_commit和Com_rollback進行分析。如果回滾操作非常頻繁那么要思考下是不是編寫存在問題。

下面有幾個參數用于了解數據庫的基本情況

 

引用

Connections:試圖連接MySQL服務器的次數(執行的命令是:show status like 'Con_%';)

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

 

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

 

 2. 定位執行效率較低的SQL語句

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

引用

1. 通過慢查詢日志定位那些執行效率較低的SQL語句,用 --log-slow-queries[=file_name]選項啟動時,MySQLd寫一個包含所有執行時間超過long_query_time秒的SQL語句的日志文件。

2. 慢查詢日志在查詢結束以后才記錄,所以在應用反映執行效率出現問題的時候進行查詢慢查詢日志并不能定位問題,可以使show processlist 命令查看當前MySQL在進行的線程,包括線程的狀態,是否鎖表等,可以實時地查看MySQL SQL的執行情況,同時對一些鎖表操作進優化。

 

 

3. 使用EXPLAIN分析低效SQL的執行計劃。

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

 

例如你想計數xxxx年公司的銷售額,那么需要操作sales和comapny table,并對money字段進行sum操作。看看怎么使用explain:

 

引用

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

顯示如下:

 

 

 

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

下面解釋下每個列的含義:

引用

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

table: 輸出結果集的表

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

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

 

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

 

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

 

ref(使用普通的索引),

 

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

 

index_merge(索引合并優化),

 

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

 

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

 

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

 

index(對于當前的每一行,都通過查詢索引來得到數據),

 

all(對于當前的每一行,都通過全表掃描來得到數據))

 

possible_keys: 表示查詢時,可能使用的索引

key:表示實際使用的索引

 

key_len:索引字段的長度

 

rows:掃描行的數量

 

Extra:執行情況的說明和描述

 

 

 

以上的相關內容就是對MySQL SQL優化的筆記的介紹,望你能有所收獲。

【編輯推薦】

  1. MySQL數據庫的正確安裝調試與VC實現很簡單
  2. 配置MySQL數據源在tomcat5中的實際操作流程
  3. C++庫連接來對MySQL數據庫進行正確連接
  4. MySQL5的基礎知識與常見問題
  5. MySQL數據庫常見問題大匯總

 

責任編輯:佚名 來源: 互聯網
相關推薦

2010-07-22 13:31:53

2010-05-17 14:08:18

MySQL 多級同步

2010-06-09 15:15:34

MySQL定時執行

2010-05-26 13:03:34

MySQL top n

2010-05-17 08:47:08

MySQL 定時數據備

2010-07-01 13:29:56

SQL Server數

2010-06-13 15:57:57

MySQL 定時數據備

2010-05-25 11:33:27

MySQL亂碼

2010-07-01 15:26:05

SQL Server

2010-06-09 13:13:03

MySQL數據維護

2010-05-18 16:41:25

MySQL 修改

2010-05-19 16:05:15

MySQL運行報告

2010-06-13 09:34:22

MySQL數據庫

2010-05-25 14:17:17

MySQL Pytho

2010-07-08 13:38:42

SQL Server不

2010-09-13 17:12:45

2010-06-28 11:40:44

SQL Server

2010-05-31 14:50:49

MySQL數據庫性能

2010-10-08 10:03:16

2019-03-11 16:24:04

虛擬機JVMJava
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99久久久久久www | a国产一区二区免费入口 | 久久久久久久香蕉 | 国产黄色大片 | 亚洲精品久久 | 天天综合日日夜夜 | 一区二区精品 | 国产精品久久久久久久久免费桃花 | 国产真实精品久久二三区 | 九九九精品视频 | 日韩电影一区 | 亚洲成人一区二区 | 亚洲一区三区在线观看 | 亚洲一区在线播放 | 欧美午夜一区二区三区免费大片 | 亚洲最新在线 | 在线观看成年人视频 | 国产福利在线播放 | 亚洲视频在线播放 | 国产成人小视频 | 国产精品国产精品国产专区不片 | 国产一级电影在线观看 | 色爱综合网 | 午夜国产| 欧美日韩亚洲一区二区 | 亚洲精品视频在线 | 日韩精品中文字幕在线 | 青青草av网站 | 我我色综合 | 午夜精品 | 午夜a级理论片915影院 | 在线播放第一页 | 亚洲国产精品一区二区www | 二区三区视频 | 国产精品久久久久久久一区探花 | 久久新视频 | 亚洲精品久久久蜜桃网站 | 青青草免费在线视频 | 亚洲狠狠 | a在线观看| 黄色三级免费网站 |