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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql时间复杂度o的n次方_MySQL性能测试调优

發布時間:2024/10/8 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql时间复杂度o的n次方_MySQL性能测试调优 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL性能測試調優

操作系統

基本操作

查看磁盤分區mount選項

$ mount

永久修改分區mount選項(系統重啟后生效)

修改文件 /etc/fstab 中對應分區的mount options列的值

在線修改分區mount選項(系統重啟后失效)

$sudo -t ext4 -o remount,noatime,errors=remount-or /

文件系統優化

ext4文件系統優化

分區mount選項加noatime $sudo -t ext4 -o remount,noatime,errors=remo

注意:剛開始加了 nodelalloc 發現mysql寫入不如去掉此參數(原因需分析)[參考:http://blog.tao.ma/?p=58]

MySQL

基本操作

顯示innodb引擎狀態

mysql> show engine innodb status;

查看配置參數

mysql> show variables [like ''];

查看運行狀態值

mysql> show global status [like ''];

修改配置參數方法

4.1. 修改配置文件(重啟服務生效,適用于所有參數)

文件位置: /etc/my.cnf

4.2. 命令動態修改(重啟服務失效,適用于動態參數)

°mysql> set global [參數]=[值]

重啟MySQL服務

$ sudo service [mysql.server] restart

賦權同時添加用戶,刷新權限

語法:

mysql> grant [權限] privileges on [數據庫].[對象] to [用戶名]%'[機器名]' identified by '[密碼]';

示例:

mysql> grant all privileges on *.* to user1@'%' identified by 'pass1';

mysql> grant all privileges on *.* to user1@'localhost' identified by 'pass1';

mysql> flush privileges;

參數調整

innodb_buffer_pool_size 參考

作用:

InnoDB用于緩存表及索引數據的內存緩沖區,InnoDB加速優化首要參數

說明:

InnoDB用于緩存表及索引數據的內存緩沖區容量的字節數。默認是128M。最大值受限于CPU架構;32位系統最大4294967295 (2的32次方減1),64位系統最大18446744073709551615 (2的64次方減1)。在32位系統中,CPU架構和操作系統可以使用的實際最大值可能小于理論上的最大值。當緩沖區大小超過1GB時,設置innodb_buffer_pool_instances為大于1的值,能夠改進一個負荷較大的服務器的可擴展性。

如果你將這個值設的較大,當多次訪問數據表中相同的數據時可以減少磁盤IO.專用的數據庫服務器上,你可以將此值設置為機器物理內存的80%。如果出現以下問題,請縮小該參數的值。

1.物理內存爭用,導致操作系統進行頁調度

2.InnoDB用額外的內存進行緩沖和控制結構,所以總共分配的內存將比指定的約大10%

3.地址空間必須是連續的,這在Windows系統中某些DLL需要加載指定地址時可能是一個問題

4.初始化緩沖池的時間與它的大小成正比,如果緩沖池太大,初始化時間可能比較長。例如,在一個現代的Linux x86_64服務器,初始化10GB的緩沖池大約需要6秒。

修改方法:

靜態參數,必須通過配置文件修改: innodb_buffer_pool_size=8G

日志相關參數

2.1. innodb_log_file_size 參考

作用:

日志組中每個日志文件大小

說明:

日志組中每個日志文件的大小. 所有日志文件大小總和(innodb_log_file_size * innodb_log_files_in_group)不能超過一個最大值(略小于512GB)。例如,兩個255G的日志文件剛好接近但未超過最大值。默認值是48M。合理的取值范圍是1MB到緩沖池大小的1/N,N是日志組中日志文件個數。這個值越大,緩沖池就需要更少的刷新檢查,減少磁盤IO。但是值過大會加大宕機恢復時間,雖然自MySQL5.5改進了恢復性能,但是還是要考慮下這個值的合理性。

修改方法:

靜態參數,必須通過配置文件修改: innodb_log_file_size=256M

2.2. innodb_log_files_in_group 參考

作用:

日志組中日志文件個數。

說明:

日志組中日志文件個數。InnoDB循環方式寫日志文件。默認值(也是建議值)是2。日志文件的位置通過innodb_log_group_home_dir指定。所有日志文件大小總和(innodb_log_file_size * innodb_log_files_in_group)不能超過一個最大值(略小于512GB)。

修改方法:

靜態參數,必須通過配置文件修改: innodb_log_files_in_group=3

2.3. innodb_log_buffer_size 參考

作用:

InnoDB寫日志文件到磁盤的緩沖區大小

說明:

InnoDB寫日志文件到磁盤的緩沖區大小。默認值是8M。大的日志緩沖區支持大事務運行,在事務提交前不需要將日志寫到磁盤。如果你有些事務update,insert或delete很多行,加大日志緩沖可以減少磁盤IO。

修改方法:

靜態參數,必須通過配置文件修改: innodb_log_buffer_size=16M

innodb_flush_method 參考

作用:

控制InnoDB flush數據和日志文件采用的系統調用

說明:

Windows不用設置

Linux可選擇:fdatasync(默認),O_DSYNC,O_DIRECT(直接寫入磁盤,禁止系統Cache),O_DIRECT_NO_FSYNC(>=5.6.7版本支持)

修改方法:

靜態參數,必須通過配置文件修改: innodb_flush_method=O_DIRECT

innodb_flush_log_at_trx_commit(未修改) 參考

作用:

控制事務符合ACID和提高系統性能之間的權衡

說明:

這個參數在事務符合ACID和高性能之間進行平衡,你可以通過調整這個參數達到高性能,但是宕機時可能丟失1秒的事務。

這個參數有3個值選項0,1,2:

1(默認值):嚴格遵從ACID,事務提交時log buffer被寫到日志文件中,并將日志文件內容flush到磁盤。

0:任何mysqld進程崩潰丟失1秒鐘的事務。log buffer每隔1秒被寫入日志文件并將日志文件刷新到磁盤,事務提交時不執行log buffer寫入日志文件的操作。因為系統調度問題,不能保證每秒日志文件都刷新到磁盤百分之百執行。

2:任何mysqld進程崩潰丟失1秒鐘的事務。事務提交時log buffer被寫入日志文件,每隔1秒將日志文件刷新到磁盤。因為系統調度問題,不能保證每秒日志文件都刷新到磁盤百分之百執行。

修改方法:

動態參數,可以通過配置文件和命令修改:innodb_flush_log_at_trx_commit=2

總結

以上是生活随笔為你收集整理的mysql时间复杂度o的n次方_MySQL性能测试调优的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。