在日常開發(fā)當(dāng)中,經(jīng)常會(huì)遇到頁(yè)面打開速度極慢的情況,通過(guò)排除,確定了,是數(shù)據(jù)庫(kù)的影響,為了迅速查找具體的SQL,可以通過(guò)Mysql的日志記錄方法。--打開sql執(zhí)行記錄功能setgloballog_output='TABLE';--輸出到表setgloballog=ON;--打開所有命令執(zhí)行記錄功能general_log,所有語(yǔ)句:成功和未成功的.setgloballog_slow_queries=ON;--打開慢查詢sql記錄slow_log,執(zhí)行成功的:慢查詢語(yǔ)句和未使用索引的語(yǔ)句setgloballong_query_time=0.1;--慢查詢時(shí)間限制(秒)setgloballog_queries_not_using_indexes=ON;--記錄未使用索引的sql語(yǔ)句--查詢sql執(zhí)行記錄select*frommysql.slow_logorderby1;--執(zhí)行成功的:慢查詢語(yǔ)句,和未使用索引的語(yǔ)句select*frommysql.general_logorderby1;--所有語(yǔ)句:成功和未成功的.--關(guān)閉sql執(zhí)行記錄setgloballog=OFF;setgloballog_slow_queries=OFF;--long_query_time參數(shù)說(shuō)明--v4.0,4.1,5.0,v5.1到5.1.20(包括):不支持毫秒級(jí)別的慢查詢分析(支持精度為1-10秒);--5.1.21及以后版本:支持毫秒級(jí)別的慢查詢分析,如0.1;--6.0到6.0.3:不支持毫秒級(jí)別的慢查詢分析(支持精度為1-10秒);--6.0.4及以后:支持毫秒級(jí)別的慢查詢分析;通過(guò)日志中記錄的Sql,迅速定位到具體的文件,優(yōu)化sql看一下,是否速度提升了呢?
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了吉木乃免費(fèi)建站歡迎大家使用!
1)怎么查看mysql是否啟用了日志
mysqlshow variables like 'log_bin';
2)怎樣知道當(dāng)前的日志
mysql show master status;
3)如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:
shellmysqlbinlog mail-bin.000001(要寫絕對(duì)問(wèn)題路徑 d://)
或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日志:
錯(cuò)誤日志:????
-log-err
查詢?nèi)罩荆????
-log
慢查詢?nèi)罩????
-log-slow-queries
更新日志:?????
-log-update
二進(jìn)制日志:?
-log-bin
在mysql的安裝目錄下,打開my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。
例如:
#Enter a name for the error
log file.?? Otherwise a default
name will be used.
log-error=err.log
#Enter a name for the query
log file. Otherwise a default name will be used.
#log=
#Enter a name for the slow
query log file. Otherwise a default name will be used.
#log-slow-queries=
#Enter a name for the update
log file. Otherwise a default name will be used.
#log-update=
#Enter a name for the binary
log. Otherwise a default name will be used.
#log-bin=
上面只開啟了錯(cuò)誤日志,要開其他的日志就把前面的“#”去掉。
long_query_time =2--
這里設(shè)置慢日志的最大實(shí)現(xiàn)是指執(zhí)行超過(guò)多久的sql會(huì)被log下來(lái),這里是2秒
log-slow-queries=slowqueris.log --將查詢返回較慢的語(yǔ)句進(jìn)行記錄,這里設(shè)置慢日志的名稱
log-queries-not-using-indexes
= nouseindex.log --就是字面意思,log下來(lái)沒(méi)有使用索引的query
5)下面是配置日志的幾種方式,不一定全都要配置,請(qǐng)根據(jù)自身需求選擇性配置
log=mylog.log
--對(duì)所有執(zhí)行語(yǔ)句進(jìn)行記錄
log-error=log-error.log
log=log-query.log
log-queries-not-using-indexes
log-warnings=2
log-slow-queries=log-slow-query.log
log-update=log-update.log
long_query_time=2
mysql有以下幾種日志:
錯(cuò)誤日志: -log-err
查詢?nèi)罩荆?-log
慢查詢?nèi)罩? -log-slow-queries
更新日志: -log-update
二進(jìn)制日志: -log-bin
在mysql的安裝目錄下,打開my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。
例如:#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=#Enter a name for the query log file. Otherwise a default name will be used.
#log=#Enter a name for the error log file. Otherwise a default name will be used.
log-error=#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
上面只開啟了錯(cuò)誤日志,要開其他的日志就把前面的“#”去掉
查看命令:①show variables like 'log_%';查看所有的log命令
②show variables like 'log_bin';查看具體的log命令
在my-default.ini文件中設(shè)置編碼:
在服務(wù)端[mysqld]添加:character-set-server=utf8
在客戶端[client]添加:default-character-set=utf8
注意:配置好了后,記得重啟mysql 服務(wù)器哈
如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:shellmysqlbinlog mail-bin.000001(要寫絕對(duì)問(wèn)題路徑 d://)或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日志:錯(cuò)誤日志: -log-err查詢?nèi)罩荆? -log慢查詢?nèi)罩? -log-slow-queries更新日志: -log-update二進(jìn)制日志: -log-bin在mysql的安裝目錄下,打開my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。例如:#Enter a name for the errorlog file. Otherwise a defaultname will be used.log-error=err.log#Enter a name for the querylog file. Otherwise a default name will be used.#log=#Enter a name for the slowquery log file. Otherwise a default name will be used.#log-slow-queries=#Enter a name for the updatelog file. Otherwise a default name will be used.#log-update=#Enter a name for the binarylog. Otherwise a default name will be used.#log-bin=上面只開啟了錯(cuò)誤日志,要開其他的日志就把前面的“#”去掉。