mysql學習7:第四章:資料庫檔案--引數檔案和型別
資料庫層面檔案:引數檔案my.cnf,錯誤日誌error log,慢查詢日誌slow log,全量日誌general log,二進位制日誌binlog,審計日誌audit log,中繼日誌relay log,套接字檔案socket,程式檔案pid,表結構檔案
儲存引擎層面:redo log,undo log日誌檔案。
引數檔案優先順序:/etc/my.cnf>/etc/mysql/my.cnf>/usr/local/mysql/my.cnf>/.my.cnf
想設定預設引數檔案,需設定--defaults-file引數
my.cnf檔案中,分為client section和server section兩塊。
client section用來配置mysql客戶端引數。
具體講解服務端引數,檢視透過:show variables like ‘%引數%’
innodb_buffer_pool :資料庫可用記憶體,實體記憶體50%-80%;,5.7可線上修改;
innodb_buffer_pool_instance :預設未1,5.6.6後可調整多個,表示InnoDB緩衝區可劃分為多個區域,提高併發性。每個緩衝區自管理,透過show engine innodb status可看到每個instance使用記憶體的情況。只有innodb_buffer_pool大於1G,多例項才生效。
快速載入記憶體中後設資料資訊
例項當機,記憶體中資料消失i,重新讀取將導致IO壓力增大,以下引數可解決:innodb_buffer_pool_load_at_staratup和innodb_buffer_pool_dump_at_shutdown
這兩個引數設定為啟用(5.7預設啟用),在例項關閉時,可將熱資料的後設資料資訊dump出來,儲存到ib_buffer_pool檔案中;檢視ib_buffer_pool檔名稱:show variables like ‘%innodb_buffer_poll_file%’
當例項啟動時,把後設資料快速載入到記憶體,其實所謂後設資料就是space number和page number的列表資訊,查詢語句如下:
切換資料庫:use infomation_schema
select space,page_number from INNODB_BUFFER_PAGE limit3;
innodb_data_file_path :可指定系統表空間檔案路徑和ibdata1檔案大小,預設10M,建議1G;
innodb_flash_log_at_trx_commit、sync_binlog、innodb_max_dirty_pages_pct:這三個引數影響redo log、binlog、髒頁的重新整理引數。
interactive_timeout: 伺服器關閉交叉式連線前等待活動的時間,預設8小時(28800s);
wait_timeout: 伺服器關閉非交叉式連線前等待活動的時間,預設8小時(28800s);
這兩個引數要一起設定成一樣的值,為避免過大連線時間,建議調整為300-600秒;5.7預設300s;
i nnodb_thread_concurrency :innodb核心最大併發執行緒數,預設0,表示不限制。
innodb_flash_method :影響innodb資料檔案、redo log 檔案開啟刷寫模式,建議選擇預設值0_DIRECT,資料檔案直接從mysql innodb buffer 寫入到磁碟,不透過os buffer。
innodb_old_blocks_time :決定young pages list中資料頁多久轉移到old pages list.
innodb_old_blocks_pct: 決定old pages list佔整個列表的百分比。案例:遇到大表掃描活使用mysqldump操作,有可能踢走熱資料,給資料庫帶來IO壓力,可適當減少innodb_old_blocks_pct的值分配,保證更多的熱資料不會被沖掉。
transaction_isolation: 事務的隔離級別,預設REPEATABLE-READ,其他還有READ-UNCOMMITTED, READ-COMMITTED,SERIALIZABLE;
innodb_open_files: 可同時開啟.ibd問問你家的個數,最小10,預設300,建議65535;
innodb_log_buffer_size: 日誌緩衝大小,資料改變記錄到緩衝區,如innodb_log_waits(等待日誌緩衝刷出的次數)大於0,而且持續增長,就要增大log buffer,範圍16M-64M。
innodb_log_file_size : redo log日誌的大小。
innodb_log_files_in_group :redo log檔案組中日誌檔案的資料量,預設至少2個;
max_connections: 資料庫最大連線數,預設151,可調大活調內部併發數
innodb_thread_concurrency :innodb內部併發數,預設0不受限,根據系統壓力,可改成CPU兩倍。透過設定thread_pool讓連線複用。
有監控讀取infomation_schma下面表,可關閉innodb_stats_on_metadata,方法:set global innodb_stats_on_metadata=0
expire_logs_days :代表binlog的過期時間,單位是天。
slow_query_log :慢查詢日誌開關,1表示開,生產環境要開啟。
long_query_time: 超過時間的日誌會記錄下來。
log_queries_not_using_indexes :如sql沒有索引則會記錄到慢查詢日誌中,生產環境開啟。set global log_queries_not_using_indexes = on
server-id : 代表同一組主從結構的唯一標識。
binlog_format: 二進位制日誌格式,生產環境用row安全,不會出現跨庫複製丟失資料。
lower_case_table_names :預設0區分表名大小寫,1不區分,以小寫儲存。
innodb_fast_shutdown: 影響innodb關閉時的行為,0是預設且最安全最慢,3最快。
0:InnoDB關閉時,需執行purge all,merge change buffer,flush dirty pages,
1:InnoDB關閉時,不執行purge all,merge insert buffer,不執行flush dirty page;
2:InnoDB關閉時:不執行full purge,merge insert buffer,重新整理髒頁到磁碟,只將redobuffer寫到日誌。
innodb_force_reecovery :影響InnoDB儲存引擎恢復時的行為,取值0到6
0:當需要恢復時執行所有恢復操作。預設為0
1:忽略檢查到的corrupt頁;
2:阻止主執行緒執行,如主執行緒要執行full purge,會導致crash
3:不執行事務回滾操作
4:不執行插入緩衝的合併操作
5:不檢視撤銷日誌,InnoDB會見未提交的事務視為已提交;
6:不執行前滾操作
innodb_status_output,innodb_status_output_locks: 建議關閉,即設定為0,否則將資料庫監控的資訊全記錄到error.log中,日誌增長過快。
innodb_io_capcity :影響重新整理髒頁和插入緩衝的數量,預設200.
auot_increment_increment :自增欄位每次遞增的值,預設1
auto_increment_offset: 自增欄位開始值。
引數分為動態引數和靜態引數
動態引數:
set global:代表全域性引數,修改退出會話依然有效,但重啟後失效。
set session:只對當前會話有效,一旦退出,立即失效。
靜態引數:無法線上修改,修改會報read only variable錯誤。只能修改配置檔案,重啟資料庫生效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2218902/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql學習9:第四章:資料庫檔案--檔案MySql資料庫
- mysql學習8:第四章:資料庫檔案--日誌檔案MySql資料庫
- 檔案型別和副檔名型別
- MySQL引數檔案沒有生效MySql
- MySQL8.0.18資料庫新增資料檔案MySql資料庫
- Python批量修改檔名和檔案型別Python型別
- Oracle 資料庫應急寶典(二)_引數檔案篇Oracle資料庫
- 第四章:COMTRADE 資料檔案
- python筆記-資料型別&檔案操作Python筆記資料型別
- postman使用教程7-引數化引用外部檔案測試資料Postman
- MySQL的配置檔案的引數設定MySql
- .gitignore檔案配置:Altium Designer工程檔案型別Git型別
- Mysql資料庫配置檔案(my.ini)分析MySql資料庫
- locate標頭檔案和庫檔案
- 3.1.2.1 關於資料庫初始化引數檔案和啟動的關係資料庫
- 織夢資料庫配置檔案-DedeCMS織夢資料庫檔案在哪裡資料庫
- python的檔案型別Python型別
- 【趙渝強老師】MySQL的引數檔案MySql
- 什麼是檔案?Linux檔案型別有哪些?Linux型別
- Java 使用魔數判斷檔案型別Java型別
- Oracle資料檔案和臨時檔案的管理Oracle
- git的gitignore檔案排除資料夾和檔案Git
- python——將excel檔案寫入mysql資料庫中PythonExcelMySql資料庫
- .yaml引數檔案的編寫和使用YAML
- Mysql資料庫使用Navicat Mysql匯入sql檔案報錯MySql資料庫
- input檔案選擇框檔案過濾引數accept
- 帝國CMS資料庫配置檔案是哪個檔案?資料庫
- 檔案上傳漏洞防範-檔案型別檢測型別
- Oracle RAC引數檔案管理Oracle
- SpringMVC【引數繫結、資料回顯、檔案上傳】SpringMVC
- Linux學習筆記:rm刪除檔案和資料夾Linux筆記
- Vim檔案型別判斷型別
- [20210326]Disk file operations IO與檔案型資料庫.txt資料庫
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- VC++學習筆記---配置檔案(一) ini檔案和propritiesC++筆記
- oracle資料庫的配置檔案Oracle資料庫
- MySQL資料庫中常見的日誌檔案彙總!MySql資料庫
- 【/proc/檔案淺析】另類辦法恢復資料檔案和控制檔案