自制mysql主從複製(實時)軟件——配置

mysql 5.5——my.ini—— innodb數據庫引擎配置java


個人機器配置也不是什麼高端配置,就通常的筆記本電腦配置2G內存python

PS:添出這個myini文件的緣由有如下幾點mysql

    1. 做爲我往後進一步學習的筆記sql

    2. 做爲和你們交流的中介,但願有更多的朋友指出個人不足 數據庫

    3. 也是督促我學習的一個模式       
      緩存

# MySQL Server Instance Configuration File安全

# ----------------------------------------------------------------------服務器

[client]數據結構

port=3306

[mysql]
多線程

default-character-set=utf8

[mysqld]

port=3306

#錯誤日誌

log-error=D:/MySQL/MySQL Server 5.5/logerror/mysql-error

#二進制更新日誌

log-bin=D:/MySQL/MySQL Server 5.5/logbin/mysql-bin

#mysql 的安裝路徑

basedir="D:/MySQL/MySQL Server 5.5/"

#數據庫存儲位置

datadir="E:/MySQL/MySQL Server 5.5/DB/"


#*** INNODB Specific options ***

innodb_data_home_dir="D:/MySQL Datafiles/data5.5/"
character-set-server=utf8
default-storage-engine=INNODB

# Set the SQL mode to strict

#用來約束你的數據庫中數據處理的模式

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# mysql併發會話數量,實際上通常的用戶獲得併發會話最大數量是max_connections-1,由於任什麼時候候都須要給super用戶留一個

max_connections=1024

#查詢緩存 若是你的項目就幾張表,那麼打開這個參數,並設定一個比較大的值(若是你的內存容許的話),那你的查詢性能將是一個質的提升;

#若是你的項目中有不少的表,並且查詢常常是在不一樣的表之間,那麼這個參數就越小越好,甚至能夠關閉該參數,由於表的查詢切換太頻繁,

#過分的緩存將拔苗助長

query_cache_size=0M
query_cache_limit = 1M
query_cache_type=off

#全部線程打開表的總和,主要是查詢打開,由於對於通常的使用而言數據的查詢較多

table_cache=1520

#零時表的大小,這個參數說的是一張表的大小。若是一個表的實際大小(200M)大於該值,那該值自動變爲表的實際大小(200M)

tmp_table_size=100M

#線程能夠緩存的數量,從而重複使用

# 可是這個值的改動不會有太大的性能的提升,或者說改善的不明顯

thread_cache_size=60

#*** MyISAM Specific options

#這些個參數是MyISAM 引擎參數設置,我不是很肯定每一個參數的實際改動效果

myisam_max_sort_file_size=100G
myisam_sort_buffer_size=199M
key_buffer_size=16M
read_buffer_size=8M
read_rnd_buffer_size=16M
sort_buffer_size=32M

#*** INNODB Specific options ***

#每張表創建一個數據文件,這個參數能夠直接寫innodb_file_per_table 或者寫innodb_file_per_table = on ,

#也就是意味着你的數據表的存放格式是frm+ibd,這些文件都放在你的數據存儲位置,固然系統的一些配置數據還

#都放在ibdata1文件中,可是若是你不配置該參數,那麼你的數據存儲位置只有frm文件,而實際的數據是都放在

#ibdata1文件中,這樣作到好處是你能夠看到每一個表的實際大小和應用狀況,方便管理,並且若是你的數據崩潰的話,

#你能夠用保留的日誌文件替換,而且直接刪除不須要的表或者出現了問題的表。

innodb_file_per_table

#InnoDB用來存儲數據目錄信息&其它內部數據結構的內存池的大小。你應用程序裏的表越多,你須要在這裏分

#配越多的內存。若是InnoDB用光了這個池內的內存,InnoDB開始從操做系統分配內存,而且往MySQL錯誤日

#志寫警告信息。 默認值是1MB。

innodb_additional_mem_pool_size = 12M

# 當innodb_flush_log_at_trx_commit被 設置爲0,日誌緩衝每秒一次地被寫到日誌文件,而且對日誌文件作到

# 磁盤操做的刷新,可是在一個事務提交不作任何操做。當這個值爲1(默認值)之時,在每一個事務提交時,日

# 志緩衝被寫到日誌文件,對日誌文件作到磁盤操做的 刷新。當設置爲2之時,在每一個提交,日誌緩衝被寫到文

# 件,但不對日誌文件作到磁盤操做的刷新。儘管如此,在對日誌文件的刷新在值爲2的狀況也每秒發生一次。

# 咱們必須注意到,由於進程安排問題,每秒一次的 刷新不是100%保證每秒都發生。你能夠經過設置這個值不

# 爲1來得到較好的性能,但隨之你會在一次崩潰中損失二分之一價值的事務。若是你設置這個值爲0,那麼任

# 何mysqld進程的崩潰會刪除崩潰前最後一秒的事務,若是你設置這個值爲2,那麼只有操做系統崩潰或掉電才

# 會刪除最後一秒的事務。儘管如此,InnoDB的崩潰恢復不受影響,並且由於這樣崩潰恢復開始做用而不考慮這

# 個值。注意,許多操做系統和一些磁盤硬件會欺騙 刷新到磁盤操做。儘管刷新沒有進行,你能夠告

# 訴mysqld刷新已經進行。即便設置這個值爲1,事務的持久程度不被保證,且在最壞狀況下掉電甚至會破

# 壞InnoDB數據庫。在SCSI磁盤控制器中,或在磁盤自身中,使用有後備電池的磁盤緩存會加速文件 刷新而且

# 使得操做更安全。你也能夠試着使用Unix命令hdparm來在硬件緩存中禁止磁盤寫緩存,或使用其它一些對硬

# 件提供商專用的命令。這個選項的 默認值是1。

innodb_flush_log_at_trx_commit=1

# InnoDB用來往磁盤上的日誌文件寫操做的緩衝區的大小。明智的值是從1MB到8MB。 默認的是1MB。一個大

# 的日誌緩衝容許大型事務運行而不須要在事務提交以前往磁盤寫日誌。所以,若是你有大型事務,使日誌緩衝

# 區更大以節約磁盤I/O。

innodb_log_buffer_size=5M

# InnoDB用來緩存它的數據和索引的內存緩衝區的大小。你把這個值設得越高,訪問表中數據須要得磁盤I/O越

# 少。在一個專用的數據庫服務器上,你能夠設置這個參數達機器物理內存大小的80%。儘管如此,仍是不要把

# 它設置得太大,由於對物理內存的競爭可能在操做系統上致使內存調度,其性能反而降低。

###innodb_buffer_pool_size=800M

innodb_buffer_pool_size=474M

# 在日誌組裏每一個日誌文件的大小。在32位計算機上日誌文件的合併大小必須少於4GB。 默認是5MB。明智的值

# 從1MB到N分之一緩衝池大小,其中N是組裏日誌文件的數目。值越大,在緩衝池越少須要檢查點刷新行爲,以

# 節約磁盤I/O。但更大的日誌文件也意味這在崩潰時恢復得更慢。

innodb_log_file_size=95M

# InnoDB試着在InnoDB內保持操做系統線程的數量少於或等於這個參數給出的限制。若是有性能問題,並

# 且SHOW INNODB STATUS顯示許多線程在等待信號,可讓線程「thrashing」 ,而且設置這個參數更小或更

# 大。若是你的計算機有多個處理器和磁盤,你能夠試着這個值更大以更好地利用計算機的資源。一個推薦的值

# 是系統上處理器和磁盤的個數之和。值爲500或比500大會禁止調用併發檢查。默認值是20,而且若是設置大

# 於或等於20,併發檢查將被禁止。

#(這段話是我在mysql5.5手冊中複製過來的,這個8是我本身電腦的設置,而服務器的參數是30)

innodb_thread_concurrency=8

# 在InnoDB中,這個選項僅與你使用多表空間innodb_file_per_table 時有關。它指定InnoDB一次能夠保持打開的.ibd文件的最大數目。

# 最小值是10。 默認值300

innodb_open_files=250

#Number of file I/O threads in InnoDB. Normally, this should be 4, but on Windows disk I/O may benefit from a larger number.

innodb_read_io_threads= 8
innodb_write_io_threads =8

#設置自動提交爲false 固然這個自動提交也能夠在本身的外部程序中控制

autocommit = false

#該參數反應的是一次事務提交能夠提交的最大包的大小

#max_allowed_packet  = 5M
max_allowed_packet  = 25M

#因爲操做失敗致使數據庫崩潰  

#(這個參數是當數據庫crash後爲了能啓動你的數據庫設置的參數,默認值是0)

#1(SRV_FORCE_IGNORE_CORRUPT):忽略檢查到的corrupt頁。

#2(SRV_FORCE_NO_BACKGROUND):阻止主線程的運行,如主線程須要執行full purge操做,會致使crash。

#3(SRV_FORCE_NO_TRX_UNDO):不執行事務回滾操做。

#4(SRV_FORCE_NO_IBUF_MERGE):不執行插入緩衝的合併操做。

#5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重作日誌,InnoDB存儲引擎會將未提交的事務視爲已提交。

#6(SRV_FORCE_NO_LOG_REDO):不執行前滾的操做。

#innodb_force_recovery = 5

ps:這裏的my.ini僅僅針對咱們本身的項目和實際應用而設定的,除了最初的mysql安裝時候給出的通用my.ini不少時候都須要咱們本身設定裏邊的參數,從而提升mysql的性能。

相關文章
相關標籤/搜索