《MYSQL數據庫mysql innodb優化配置方法分享》要點:
本文介紹了MYSQL數據庫mysql innodb優化配置方法分享,希望對您有用。如果有疑問,可以聯系我們。
本節內容:
innodb數據庫引擎的優化與配置辦法.MYSQL學習
在mysql數據庫中,innodb_buffer_pool_size:這是InnoDB最重要的設置,對InnoDB性能有決定性的影響.MYSQL學習
默認的設置只有8M,所以默認的數據庫設置下面InnoDB性能很差.MYSQL學習
在只有InnoDB存儲引擎的數據庫服務器上面,可以設置60-80%的內存.MYSQL學習
更精確一點,在內存容量允許的情況下面設置比InnoDB tablespaces年夜10%的內存年夜小.MYSQL學習
innodb_data_file_path:指定表數據和索引存儲的空間,可以是一個或者多個文件.最后一個數據文件必需是自動擴充的,也只有最后一個文件允許自動擴充.
這樣,當空間用完后,自動擴充數據文件就會自動增長(以8MB為單位)以容納額外的數據.MYSQL學習
例如:
innodb_data_file_path=/disk1/ibdata1:900M;/disk2/ibdata2:50M:autoextend
兩個數據文件放在分歧的磁盤上.MYSQL學習
數據首先放在ibdata1中,當達到900M以后,數據就放在ibdata2中.一旦達到50MB,ibdata2將以8MB為單位自動增長.
如果磁盤滿了,必要在另外的磁盤上面增加一個數據文件.MYSQL學習
innodb_data_home_dir:放置表空間數據的目錄,默認在mysql的數據目錄,設置到和MySQL安裝文件不同的分區可以提高性能.
innodb_log_file_size:該參數決定了recovery speed.
太大的話recovery就會比擬慢,太小了影響查詢性能,一般取256M可以兼顧性能和recovery的速度.MYSQL學習
innodb_log_buffer_size:磁盤速度是很慢的,直接將log寫道磁盤會影響InnoDB的性能,該參數設定了log buffer的年夜小,一般4M.
如果有年夜的blob操作,可以適當增年夜.MYSQL學習
innodb_flush_logs_at_trx_commit=2:
該參數設定了事務提交時內存中log信息的處置.MYSQL學習
1) =1時,在每個事務提交時,日志緩沖被寫到日志文件,對日志文件做到磁盤操作的刷新.Truly ACID.速度慢.
2) =2時,在每個事務提交時,日志緩沖被寫到文件,但不對日志文件做到磁盤操作的刷新.只有操作系統瓦解或掉電才會刪除最后一秒的事務,不然不會丟失事務.
3) =0時, 日志緩沖每秒一次地被寫到日志文件,并且對日志文件做到磁盤操作的刷新.任何mysqld進程的瓦解會刪除瓦解前最后一秒的事務.MYSQL學習
innodb_file_per_table:可以存儲每個InnoDB表和它的索引在它本身的文件中.
transaction-isolation=READ-COMITTED: 如果應用程序可以運行在READ-COMMITED隔離級別,做此設定會有一定的性能提升.MYSQL學習
innodb_flush_method: 設置InnoDB同步IO的方式:
1) Default – 使用fsync().
2) O_SYNC 以sync模式打開文件,通常比擬慢.
3) O_DIRECT,在Linux上使用Direct IO.可以顯著提高速度,特別是在RAID系統上.避免額外的數據復制和double buffering(mysql buffering 和OS buffering).MYSQL學習
innodb_thread_concurrency: InnoDB kernel最年夜的線程數.
1) 最少設置為(num_disks+num_cpus)*2.
2) 可以通過設置成1000來禁止這個限制MYSQL學習
《MYSQL數據庫mysql innodb優化配置方法分享》是否對您有啟發,歡迎查看更多與《MYSQL數據庫mysql innodb優化配置方法分享》相關教程,學精學透。維易PHP學院為您提供精彩教程。