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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql快速入门_MySQL快速入门(三)

發(fā)布時間:2023/12/15 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql快速入门_MySQL快速入门(三) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 性能優(yōu)化

1.1? MySQL索引

什么是索引?

索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個組成部分),它們包含

著對數(shù)據(jù)表里所有記錄的引用指針。更通俗的說,數(shù)據(jù)庫索引好比是一本書前面的目錄,

能加快數(shù)據(jù)庫的查詢速度。

索引分類:

①單列索引:一個索引只包含單個列,一個表可以有多個單列索引

②組合索引:一個索引包含多個列

索引的使用

創(chuàng)建索引

create index indecName on tableName(userName(length))’

修改索引

alter table tableName add index indexName(columnName)

刪除索引

drop index indexName on tableName

1.2? ?explain命令

explain命令介紹

explain命令顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優(yōu)化的查詢語句,使用方法在select語句前加上explain就可以了.

示例:

Mysql執(zhí)行計劃的圖解:

1.3? ?慢查詢

1. 什么是慢查詢?

MySQL的慢查詢,全名是慢查詢?nèi)罩?#xff0c;是MySQL提供的一種日志記錄,用來記錄在MySQL中響應時間超過閥值的語句。具體環(huán)境中,運行時間超過long_query_time值的SQL語句,則會被記錄到慢查詢?nèi)罩? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 中。long_query_time的默認值為10,意思是記錄運行10秒以上的語句。默認情況下,MySQL數(shù)據(jù)庫并不啟動慢查詢?nèi)罩?#xff0c;需要手動來設置這個參數(shù)。當然,如果不是調(diào)優(yōu)需要的話,一般不建議啟動該參數(shù),因為? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 開啟慢查詢?nèi)罩緯蚨嗷蛏賻硪欢ǖ男阅苡绊憽B樵內(nèi)罩局С謱⑷罩居涗泴懭胛募蛿?shù)據(jù)庫表。

參數(shù)說明:

slow_query_log ??????慢查詢開啟狀態(tài)(ON?為開啟,OFF?為關(guān)閉)

slow_query_log_file ??慢查詢?nèi)罩敬娣诺奈恢?/p>

long_query_time??????查詢超過多少秒才記錄(記錄日志,單位為秒)

2. 慢查詢設置步驟

1.查看是否開啟慢查詢功能

2.設置方法

方法一:全局變量設置

1.?把slow_query_log?全局變量設置為“ON”狀態(tài)

mysql> set global slow_query_log='ON';

2.設置慢查詢?nèi)罩敬娣诺奈恢?/p>

mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';

3.查詢超過1秒就記錄

mysql> set global long_query_time=1;

方法二:配置文件設置

修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]

slow_query_log =?ON

slow_query_log_file =?/usr/local/mysql/data/slow.log

long_query_time =?1

3.重啟MySQL服務

service mysqld restart

4.查看設置后的參數(shù)

設置完后我們來測試一下是否開啟慢查詢

1.執(zhí)行一條慢查詢SQL語句

mysql> select sleep(2);

2.查看是否生成慢查詢?nèi)罩?/p>

ls /usr/local/mysql/data/slow.log

如果日志存在,MySQL開啟慢查詢設置成功!

3. 對慢查詢的分析

使用mysqldumpslow工具

在生產(chǎn)環(huán)境中,如果要手工分析日志,查找、分析SQL,顯然是個體力活。

MySQL提供了日志分析工具mysqldumpslow

查看mysqldumpslow的幫助信息:

三 .MySQL性能分析語句show profile

什么是show profile?

show profiles?這個命令非常強大,能清晰的展示每條SQL的持續(xù)時間。通常結(jié)合show profile?命令可以更加詳細的展示其耗時信息。這樣就能很容易的分析出,到底慢在哪個環(huán)節(jié)了。比較遺憾的是,在MySQL中,該命令默認是關(guān)閉狀態(tài)的。

Show profile的使用

1..開啟命令:

set profiling = ON;?或等于1

2.查看是否生效:

Value的取值范圍有兩個:其中?ON?為開啟狀態(tài),OFF為關(guān)閉狀態(tài)。

值得注意的是:通過上述命令開啟后僅在當前會話有效。

作用:

show profiles?其作用為顯示當前會話服務器最新收到的15條SQL的性能信息。

其中包括:持續(xù)時間,以及Query_ID。我們可以通過Query_ID分析其性能

1.Query_ID?表示執(zhí)行SQL的唯一標識。

2.Duration?表示持續(xù)時間,默認單位為秒。

3.Query?就是我們所執(zhí)行的SQL語

注意:

show profiles?語句 默認顯示的是服務端接收到的最新的15條語句。

我們可以通過以下語句進行修改默認值:

set profiling_history_size =20;

profiling_history_size最大取值取值范圍為[0,100]。

當超過100時,則會設置自動設置為最大值100。

當小于0時,則會自動設置最小值為0。

當其等于0時,其效果等同于?set profiling=0,關(guān)閉性能分析模式

show profile命令的使用

示例:用Query_ID查

當結(jié)果顯示的比較多時,可以通過?limit?選項,來顯示指定的行數(shù).

通過上述結(jié)果,我們可以非常清楚的查看每一步的耗時,其中(Druation的單位為秒)。這樣,當我們遇到一條慢SQL時,就能很清楚的知道,為什么慢,慢在哪一步了。就可以進行針對性的優(yōu)化。我們對優(yōu)化后的SQL語句也能查看其持續(xù)時間,是否符合我們的指標.

總結(jié)

以上是生活随笔為你收集整理的mysql快速入门_MySQL快速入门(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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