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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql核心参数_MySQL技术体系之核心参数

發(fā)布時(shí)間:2025/3/8 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql核心参数_MySQL技术体系之核心参数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文主要基于MySQL 5.7版本的數(shù)據(jù)庫(kù)環(huán)境,總結(jié)my.cnf文件中核心參數(shù)的配置使用,讓更多的人對(duì)MySQL技術(shù)體系有更全面、更專業(yè)的深度了解。

一、客戶端核心參數(shù)

1、port

端口號(hào),默認(rèn)3306

2、socket

Socket文件地址,默認(rèn)以.sock為文件名稱后綴,用于UNIX套接字通信。

二、服務(wù)端全局區(qū)(SGA)緩沖區(qū)參數(shù)

1、innodb_buffer_pool

InnoDB緩沖池,位于主內(nèi)存

緩存被訪問(wèn)過(guò)的表數(shù)據(jù)、索引文件、插入緩沖、數(shù)據(jù)字典等

推薦大小設(shè)置為物理內(nèi)存的50%-80%

2、innodb_buffer_pool_instance

將緩沖池進(jìn)一步劃分為互相隔離的內(nèi)存區(qū)域,更好的支持并發(fā)讀寫,減少內(nèi)存爭(zhēng)用現(xiàn)象

默認(rèn)值為1

僅當(dāng)innodb_buffer_pool參數(shù)配置大于1024MB有效

通過(guò)命令show engine innodb status查看每個(gè)內(nèi)存區(qū)域的內(nèi)存使用情況

3、innodb_old_blocks_time和innodb_old_blocks_pct

InnoDB緩沖池innodb_buffer_pool,內(nèi)部由LRU鏈表管理

LRU鏈表進(jìn)一步分為old pages list和young pages list:

old pages list:存放長(zhǎng)時(shí)間未被訪問(wèn)的數(shù)據(jù)頁(yè)

young pages list:存放最新、最近被訪問(wèn)的數(shù)據(jù)頁(yè)

當(dāng)超過(guò)innodb_old_blocks_time參數(shù)設(shè)置的時(shí)間時(shí),就會(huì)移動(dòng)到old pages list,默認(rèn)是1000ms。

innodb_old_blocks_pct參數(shù)決定old pages list在LRU鏈表及innodb_buffer_pool中占比:

存在大表掃描或者執(zhí)行mysqldump備份操作時(shí),可能會(huì)剔除熱數(shù)據(jù),增加I/O壓力,因此要適當(dāng)減少innodb_old_blocks_pct參數(shù)值

4、innodb_log_buffer_size和innodb_log_waits

innodb_log_buffer_size:日志緩沖區(qū)的大小,取值范圍16MB-64MB

innodb_log_waits:等待日志緩沖刷出的次數(shù)

通過(guò)命令show global status like "%innodb_log_waits%"查看:

如果發(fā)現(xiàn)innodb_log_waits值大于0,并且持續(xù)增長(zhǎng),可以考慮增大innodb_log_buffer_size

5、innodb_log_buffer

事務(wù)在內(nèi)存中的緩沖區(qū)的大小,即redo log buffer

6、query_cache_size和query_cache_type

query_cache_siz靜態(tài)數(shù)據(jù)的緩存區(qū)大小

默認(rèn)關(guān)閉,建議關(guān)閉,保證數(shù)據(jù)庫(kù)的TPS

數(shù)據(jù)倉(cāng)庫(kù)場(chǎng)景可能會(huì)選擇開啟

實(shí)例啟動(dòng)前,設(shè)置query_cache_size=0和query_cache_type=off才算真正關(guān)閉

三、服務(wù)端程序緩沖區(qū)(PGA)參數(shù)

1、sort_buffer_size

用于SQL語(yǔ)句在內(nèi)存中的臨時(shí)排序

2、join_buffer_size

表連接使用,用于BKA

3、read_buffer_size

MyISAM存儲(chǔ)引擎的表順序掃描的緩存

4、read_rnd_buffer_size

隨機(jī)讀緩沖區(qū)大小

用于mrr特性

5、tmp_table_size和max_heap_table_size

tmp_table_size:SQL語(yǔ)句在排序或者分組時(shí)沒有用到索引,會(huì)使用臨時(shí)表空間

max_heap_table_size:管理heap、memory存儲(chǔ)引擎表

建議tmp_table_size和max_heap_table_siz大小配置一致

三、服務(wù)端刷盤參數(shù)

內(nèi)存中的數(shù)據(jù)需要根據(jù)刷新機(jī)制決定在某一時(shí)刻如何刷新到磁盤,刷新機(jī)制涉及redo log buffer、data buffer、binlog cache等內(nèi)存緩沖區(qū),read thread、write thread、redo log thread、change buffer thread四大I/O線程,及master?thread后臺(tái)主線程。

1、innodb_flush_log_at_trx_commit

控制由內(nèi)存redo log buffer寫入磁盤relo log、和執(zhí)行刷盤操作的頻率

可選參數(shù)值(實(shí)踐根據(jù)業(yè)務(wù)場(chǎng)景選擇):

0:redo log thread每隔1s會(huì)執(zhí)行一次刷盤策略;

此種情況,每次事務(wù)提交不會(huì)觸發(fā)redo log thread將日志緩沖中的數(shù)據(jù)寫入redo log;

性能最好,但是安全性最低,MySQL進(jìn)程崩潰將會(huì)導(dǎo)致丟失1s的數(shù)據(jù);

1:每次事務(wù)提交時(shí),都會(huì)觸發(fā)redo log thread將日志緩沖中的數(shù)據(jù)寫入redo log,并且執(zhí)行刷盤操作,以便保證數(shù)據(jù)確實(shí)已經(jīng)寫入磁盤;

安全性最高,但是性能最差;

2:每次事務(wù)提交時(shí),都會(huì)觸發(fā)redo log thread將日志緩沖中的數(shù)據(jù)寫入redo log,但是不會(huì)同時(shí)執(zhí)行刷盤操作;

另外兩個(gè)決定redo log buffer刷到磁盤的條件:

master thread每秒進(jìn)行刷新;

redo log buffer使用超過(guò)一半時(shí)觸發(fā)刷新;

2、sync_binlog

控制由內(nèi)存binlog cache刷新到磁盤binglog的頻率

參數(shù)值為正整數(shù):

0:每次事務(wù)提交后,不主動(dòng)做fsync之類的磁盤同步指令刷新binlog cache,讓FileSystem自行決定同步時(shí)機(jī),或者binlog cache滿才同步到磁盤;

1:每次事務(wù)提交后,主動(dòng)做刷新binlog cache到磁盤;

n:每進(jìn)行n次事務(wù)提交后,主動(dòng)做fsync之類的磁盤同步指令刷新binlog cache到磁盤;

3、數(shù)據(jù)庫(kù)的雙一模式:

innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

4、innodb_max_dirty_pages_pct

控制臟頁(yè)的刷新頻率,在buffer pool中dirty page所占的百分比,達(dá)到閾值會(huì)觸發(fā)page cleaner thrad執(zhí)行臟頁(yè)刷新

默認(rèn)值是75%

建議設(shè)置為25%-50%之間,保證數(shù)據(jù)庫(kù)整體的TPS

5、innodb_flush_method

控制InnoDB數(shù)據(jù)文件、redo log文件的打開刷寫模式;

可選參數(shù)值:

O_SYNC:

O_DSYNC:

O_DIRECT:數(shù)據(jù)文件直接從MySQL InnoDB Buffer寫入到磁盤,不用通過(guò)OS buffer;

四、服務(wù)端并發(fā)量參數(shù)

1、innodb_max_thread_concurrency

InnoDB內(nèi)核最大并發(fā)線程數(shù),默認(rèn)值為0(含義不受限制)

2、innodb_open_files

InnoDB可同時(shí)打開的.ibd文件個(gè)數(shù)

參數(shù)值規(guī)則>=10,默認(rèn)值300

建議調(diào)整為65535,提高并發(fā)數(shù)

3、max_connections和innodb_thread_concurrency

max_connections控制MySQL數(shù)據(jù)庫(kù)最大的連接數(shù),默認(rèn)值151,高并發(fā)場(chǎng)景中經(jīng)常遇到的"too many connections"異常報(bào)錯(cuò),即為此參數(shù)配置過(guò)低或者集群需要水平擴(kuò)容

innodb_thread_concurrency控制InnoDB內(nèi)部并發(fā)數(shù),參數(shù)值為正整數(shù)(默認(rèn)值為0):

0:不受限制;

n:并發(fā)數(shù)為n,建議設(shè)置為服務(wù)器邏輯CPU核數(shù)的2倍,根據(jù)實(shí)際情況由小及大逐步調(diào)整驗(yàn)證;

五、服務(wù)端事務(wù)參數(shù)

1、transaction_isolation

事務(wù)隔離級(jí)別

可選參數(shù)值(默認(rèn)值REPEATABLE-READ):

READ-UNCOMMITTED:讀未提交

READ-COMMITTED:讀已提交

REPEATABLE-READ:可重復(fù)讀

SERIALIZABLE:序列化

六、服務(wù)端影響I/O性能的參數(shù)

1、innodb_log_file_size

redo log日志的大小,需要合理設(shè)置:

如果設(shè)置偏小,將會(huì)導(dǎo)致redo log切換頻繁,產(chǎn)生無(wú)用的I/O消耗,影響數(shù)據(jù)庫(kù)性能;

如果設(shè)置偏大,將會(huì)導(dǎo)致實(shí)例宕機(jī)恢復(fù)需要較長(zhǎng)時(shí)間;

2、innodb_log_files_in_group

redo log文件組中的日志文件的數(shù)量,默認(rèn)情況下至少需要2個(gè)。

3、innodb_stats_on_metadata

information_schema中的表,某些監(jiān)控程序讀取innodb_stats_on_metadata表

可通過(guò)命令"set global innodb_stats_on_metadata=0"關(guān)閉

七、服務(wù)端慢查詢參數(shù)

1、show_query_log

慢查詢?nèi)罩鹃_關(guān)

可選參數(shù)值:

1:開啟狀態(tài),推薦配置;

2、long_query_time

慢查詢的時(shí)間閾值,單位為秒;

超過(guò)閾值就會(huì)記錄到慢查詢?nèi)罩疚募?#xff1b;

3、log_queries_not_using_indexs

運(yùn)行的SQL沒有使用索引,是否記錄到慢查詢?nèi)罩疚募?/p>

可選參數(shù)值:

on:記錄,推薦配置,set global set log_queries_not_using_indexs=on;

off:不記錄;

八、服務(wù)端二進(jìn)制文件參數(shù)

1、expire_logs_days

binlog文件的過(guò)期時(shí)間,單位為天

2、binlog_format

二進(jìn)制日志文件的內(nèi)容格式

可選參數(shù)值:

statement:記錄的是一條SQL語(yǔ)句

row:此模式較為安全,不會(huì)出現(xiàn)跨庫(kù)復(fù)制丟失數(shù)據(jù)的情況;

一般中間件采集數(shù)據(jù)解析也是這種模式,記錄行變更前的樣子及變更后的內(nèi)容

mixed:混合模式

九、服務(wù)端其它參數(shù)

1、innodb_buffer_pool_load_at_startup和innodb_buffer_pool_dump_at_shutdown

快速加載實(shí)例宕機(jī)前內(nèi)存中的熱數(shù)據(jù),減少磁盤I/O壓力

可選參數(shù)值(默認(rèn)0):

0:關(guān)閉狀態(tài)

1:啟用狀態(tài)

在實(shí)例關(guān)閉時(shí),將熱數(shù)據(jù)的元數(shù)據(jù)信息保存到innodb_buffer_pool_filename參數(shù)指定的文件(默認(rèn)ib_buffer_pool)

在實(shí)例啟動(dòng)時(shí),從innodb_buffer_pool_filenam參數(shù)指定的文件(默認(rèn)ib_buffer_pool)快速加載回內(nèi)存

2、innodb_data_file_path

指定系統(tǒng)表空間文件的路徑和ibdata1文件的大小

默認(rèn)大小是10MB

3、interactive_timeout和wait_timeout

interactive_timeout是服務(wù)器關(guān)閉交互式連接前等待活動(dòng)的時(shí)間,默認(rèn)值28800s,即8小時(shí)

iwait_timeout是服務(wù)器關(guān)閉非交互式連接前等待活動(dòng)的時(shí)間,默認(rèn)值28800s,即8小時(shí)

兩個(gè)參數(shù)需要一起調(diào)整,并且保持一致,默認(rèn)值時(shí)間過(guò)長(zhǎng),建議調(diào)整為300s-600s之間

4、server-id

主從環(huán)境中,當(dāng)前MySQL在主從結(jié)構(gòu)中的唯一標(biāo)識(shí)

5、lower_case_table_names

表名稱是否區(qū)分大小寫

可選參數(shù)值:

0:區(qū)分大小寫

1:不區(qū)分大小寫,實(shí)際存儲(chǔ)使用小寫;

6、innodb_fast_shutdown和innodb_force_recoverty

innodb_fast_shutdown控制表的InnoDB存儲(chǔ)引擎在關(guān)閉時(shí)的行為

可選參數(shù)值:

0:默認(rèn)值;

需要執(zhí)行purge all、merge change buffer、flush dirty pages操作;

此方式是最慢的關(guān)閉方式,但是restart時(shí)最快;

1:不需要執(zhí)行purge all、merge change buffer等操作,但是需要執(zhí)行flush dirty pages操作;

2:不完成purge all、merge change buffer等操作,也不刷新臟頁(yè)到磁盤;

只是將日志寫入日志文件,因此不會(huì)丟數(shù)據(jù),但是重新啟動(dòng)會(huì)進(jìn)行recovery操作;

7、innodb_force_recoverty

控制表的InnoDB存儲(chǔ)引擎在恢復(fù)時(shí)的行為

可選參數(shù)值:

0:默認(rèn)值,當(dāng)需要恢復(fù)時(shí)執(zhí)行所有操作;

1:忽略檢查到的corrupt頁(yè);

2:阻止主線程的運(yùn)行,

3:不執(zhí)行事務(wù)回滾操作;

4:不執(zhí)行插入緩沖的合并操作;

5:不查看撤銷日志,InnoDB存儲(chǔ)引擎會(huì)將未提交的事務(wù)視為已提交;

6:不執(zhí)行前滾操作;

7、innodb_status_output和innodb_status_output_locks

數(shù)據(jù)庫(kù)監(jiān)控信息記錄到error log

建議關(guān)閉,防止錯(cuò)誤日志增長(zhǎng)過(guò)快,造成磁盤空間使用緊張

8、innodb_io_capacity

InnoDB后臺(tái)進(jìn)程最大的I/O性能指標(biāo),影響刷新臟頁(yè)和插入緩沖的數(shù)量

默認(rèn)值為200,可根據(jù)實(shí)際使用的磁盤類型選擇調(diào)整

9、auto_increment_increment和auto_increment_offset

auto_increment_increment表示自增長(zhǎng)字段每次遞增的量,默認(rèn)值為1

auto_increment_offset表示自增長(zhǎng)字段從哪個(gè)值開始,默認(rèn)值為1

歡迎訂閱個(gè)人公眾號(hào),瀏覽更多MySQL技術(shù)體系知識(shí)。

總結(jié)

以上是生活随笔為你收集整理的mysql核心参数_MySQL技术体系之核心参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 2021狠狠操 | 美女网站免费观看视频 | 国产精品一区二区三区免费看 | 亚洲第一黄色片 | 国产伦精品一区三区精东 | 青青草手机视频在线观看 | 精品少妇人妻av免费久久久 | 久久不卡 | 中文字幕第一区综合 | 亚洲爽片| 91香蕉视频在线看 | 国产伦理精品 | 成人影视免费观看 | 99久久视频| xxxx性视频| 成人学院中文字幕 | 天堂在线资源网 | 欧美婷婷精品激情 | 久插视频| 天堂av资源| 手机av在线网 | 久久999 | av人人干| 国产亚洲精品久久久 | 韩国三级免费 | 男人的天堂你懂的 | 日日夜夜精品免费视频 | 日本一级黄色大片 | 最近最新mv字幕观看 | 久久久www成人免费毛片 | 久草精品在线观看视频 | 日韩av资源站 | 人体私拍套图hdxxxx | 成年人免费网址 | wwww在线观看 | 久免费一级suv好看的国产 | 天天干天天谢 | 视色视频在线观看 | 69超碰 | 久久黄色录像 | 很污的网站 | 香蕉传媒| 国产精品久久久久久免费免熟 | 久久国产乱子伦精品 | 成人av观看 | 国产精品一卡 | 欧美日韩精品中文字幕 | 魔性诱惑| 激情五月综合 | 欧美美女性生活视频 | 欧美视频 | 999资源站 | av一区二区三区免费观看 | 国精品人妻无码一区二区三区喝尿 | 亚洲免费一区二区 | 午夜剧场福利 | 亚洲毛片在线 | 国产最新视频在线 | 国产理论一区 | 亚洲视频999| 美女100%无挡| 日日摸日日碰夜夜爽无码 | 国产乱淫a∨片免费视频 | 欧美日韩国产一区在线 | 午夜视频福利在线观看 | av高清在线观看 | 久久亚洲成人av | 91网址在线 | 欧美激情在线观看视频 | 成人免费一区二区 | 黄色三级免费网站 | 免费黄色成人 | 中日韩男男gay无套 人人草人人干 | 亚洲中文一区二区 | 日韩毛片无码永久免费看 | 制服一区二区 | 成人免费公开视频 | 九一在线视频 | 久久久久久久中文字幕 | 日韩成人短视频 | 二区三区在线观看 | 日韩一区二区三区不卡 | 久久精品无码Av中文字幕 | 国产911| 人妻系列一区 | 齐天大性床战铁扇公主 | 欧美日韩国产精品综合 | 国产精品久久久影院 | 成人毛片网站 | 天堂99| 欧美激情自拍 | 中文字幕Av日韩精品 | 尤物精品视频在线观看 | www.日日夜夜 | 美女黄视频网站 | 亚洲理论在线 | 日韩h视频 | 一级成人av| 国产精品一区一区三区 |