這篇文章主要講解了“怎么理解并掌握MySQL參數(shù)文件和類型”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么理解并掌握mysql參數(shù)文件和類型”吧!
創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為柘城等服務(wù)建站,柘城等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為柘城企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
數(shù)據(jù)庫層面文件:參數(shù)文件my.cnf,錯誤日志error log,慢查詢?nèi)罩緎low log,全量日志general log,二進制日志binlog,審計日志audit log,中繼日志relay log,套接字文件socket,進程文件pid,表結(jié)構(gòu)文件
存儲引擎層面:redo log,undo log日志文件。
參數(shù)文件優(yōu)先級:/etc/my.cnf>/etc/mysql/my.cnf>/usr/local/mysql/my.cnf>/.my.cnf
想設(shè)置默認參數(shù)文件,需設(shè)置--defaults-file參數(shù)
my.cnf文件中,分為client section和server section兩塊。
client section用來配置mysql客戶端參數(shù)。
具體講解服務(wù)端參數(shù),查看通過:show variables like ‘%參數(shù)%’
innodb_buffer_pool:數(shù)據(jù)庫可用內(nèi)存,物理內(nèi)存50%-80%;,5.7可在線修改;
innodb_buffer_pool_instance:默認未1,5.6.6后可調(diào)整多個,表示InnoDB緩沖區(qū)可劃分為多個區(qū)域,提高并發(fā)性。每個緩沖區(qū)自管理,通過show engine innodb status可看到每個instance使用內(nèi)存的情況。只有innodb_buffer_pool大于1G,多實例才生效。
快速加載內(nèi)存中元數(shù)據(jù)信息
實例宕機,內(nèi)存中數(shù)據(jù)消失i,重新讀取將導(dǎo)致IO壓力增大,以下參數(shù)可解決:innodb_buffer_pool_load_at_staratup和innodb_buffer_pool_dump_at_shutdown
這兩個參數(shù)設(shè)置為啟用(5.7默認啟用),在實例關(guān)閉時,可將熱數(shù)據(jù)的元數(shù)據(jù)信息dump出來,保存到ib_buffer_pool文件中;查看ib_buffer_pool文件名稱:show variables like ‘%innodb_buffer_poll_file%’
當(dāng)實例啟動時,把元數(shù)據(jù)快速加載到內(nèi)存,其實所謂元數(shù)據(jù)就是space number和page number的列表信息,查詢語句如下:
切換數(shù)據(jù)庫:use infomation_schema
select space,page_number from INNODB_BUFFER_PAGE limit3;
innodb_data_file_path:可指定系統(tǒng)表空間文件路徑和ibdata1文件大小,默認10M,建議1G;
innodb_flash_log_at_trx_commit、sync_binlog、innodb_max_dirty_pages_pct:這三個參數(shù)影響redo log、binlog、臟頁的刷新參數(shù)。
interactive_timeout:服務(wù)器關(guān)閉交叉式連接前等待活動的時間,默認8小時(28800s);
wait_timeout: 服務(wù)器關(guān)閉非交叉式連接前等待活動的時間,默認8小時(28800s);
這兩個參數(shù)要一起設(shè)置成一樣的值,為避免過大連接時間,建議調(diào)整為300-600秒;5.7默認300s;
innodb_thread_concurrency:innodb內(nèi)核最大并發(fā)線程數(shù),默認0,表示不限制。
innodb_flash_method:影響innodb數(shù)據(jù)文件、redo log 文件打開刷寫模式,建議選擇默認值0_DIRECT,數(shù)據(jù)文件直接從mysql innodb buffer 寫入到磁盤,不通過os buffer。
innodb_old_blocks_time:決定young pages list中數(shù)據(jù)頁多久轉(zhuǎn)移到old pages list.
innodb_old_blocks_pct:決定old pages list占整個列表的百分比。案例:遇到大表掃描活使用mysqldump操作,有可能踢走熱數(shù)據(jù),給數(shù)據(jù)庫帶來IO壓力,可適當(dāng)減少innodb_old_blocks_pct的值分配,保證更多的熱數(shù)據(jù)不會被沖掉。
transaction_isolation:事務(wù)的隔離級別,默認REPEATABLE-READ,其他還有READ-UNCOMMITTED, READ-COMMITTED,SERIALIZABLE;
innodb_open_files:可同時打開.ibd問問你家的個數(shù),最小10,默認300,建議65535;
innodb_log_buffer_size:日志緩沖大小,數(shù)據(jù)改變記錄到緩沖區(qū),如innodb_log_waits(等待日志緩沖刷出的次數(shù))大于0,而且持續(xù)增長,就要增大log buffer,范圍16M-64M。
innodb_log_file_size: redo log日志的大小。
innodb_log_files_in_group:redo log文件組中日志文件的數(shù)據(jù)量,默認至少2個;
max_connections:數(shù)據(jù)庫最大連接數(shù),默認151,可調(diào)大活調(diào)內(nèi)部并發(fā)數(shù)
innodb_thread_concurrency:innodb內(nèi)部并發(fā)數(shù),默認0不受限,根據(jù)系統(tǒng)壓力,可改成CPU兩倍。通過設(shè)置thread_pool讓連接復(fù)用。
有監(jiān)控讀取infomation_schma下面表,可關(guān)閉innodb_stats_on_metadata,方法:set global innodb_stats_on_metadata=0
expire_logs_days:代表binlog的過期時間,單位是天。
slow_query_log:慢查詢?nèi)罩鹃_關(guān),1表示開,生產(chǎn)環(huán)境要開啟。
long_query_time:超過時間的日志會記錄下來。
log_queries_not_using_indexes:如sql沒有索引則會記錄到慢查詢?nèi)罩局?,生產(chǎn)環(huán)境開啟。set global log_queries_not_using_indexes = on
server-id: 代表同一組主從結(jié)構(gòu)的唯一標(biāo)識。
binlog_format:二進制日志格式,生產(chǎn)環(huán)境用row安全,不會出現(xiàn)跨庫復(fù)制丟失數(shù)據(jù)。
lower_case_table_names:默認0區(qū)分表名大小寫,1不區(qū)分,以小寫存儲。
innodb_fast_shutdown:影響innodb關(guān)閉時的行為,0是默認且最安全最慢,3最快。
0:InnoDB關(guān)閉時,需執(zhí)行purge all,merge change buffer,flush dirty pages,
1:InnoDB關(guān)閉時,不執(zhí)行purge all,merge insert buffer,不執(zhí)行flush dirty page;
2:InnoDB關(guān)閉時:不執(zhí)行full purge,merge insert buffer,刷新臟頁到磁盤,只將redobuffer寫到日志。
innodb_force_reecovery:影響InnoDB存儲引擎恢復(fù)時的行為,取值0到6
0:當(dāng)需要恢復(fù)時執(zhí)行所有恢復(fù)操作。默認為0
1:忽略檢查到的corrupt頁;
2:阻止主線程運行,如主線程要執(zhí)行full purge,會導(dǎo)致crash
3:不執(zhí)行事務(wù)回滾操作
4:不執(zhí)行插入緩沖的合并操作
5:不查看撤銷日志,InnoDB會見未提交的事務(wù)視為已提交;
6:不執(zhí)行前滾操作
innodb_status_output,innodb_status_output_locks:建議關(guān)閉,即設(shè)置為0,否則將數(shù)據(jù)庫監(jiān)控的信息全記錄到error.log中,日志增長過快。
innodb_io_capcity:影響刷新臟頁和插入緩沖的數(shù)量,默認200.
auot_increment_increment:自增字段每次遞增的值,默認1
auto_increment_offset:自增字段開始值。
參數(shù)分為動態(tài)參數(shù)和靜態(tài)參數(shù)
動態(tài)參數(shù):
set global:代表全局參數(shù),修改退出會話依然有效,但重啟后失效。
set session:只對當(dāng)前會話有效,一旦退出,立即失效。
靜態(tài)參數(shù):無法在線修改,修改會報read only variable錯誤。只能修改配置文件,重啟數(shù)據(jù)庫生效。
感謝各位的閱讀,以上就是“怎么理解并掌握mysql參數(shù)文件和類型”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么理解并掌握mysql參數(shù)文件和類型這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
本文題目:怎么理解并掌握mysql參數(shù)文件和類型
當(dāng)前鏈接:http://muchs.cn/article30/jooopo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、Google、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作、、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)