二進位制日誌是寫操作是,首先寫入二進位制日誌緩衝(binlog_cache)然後commit,再從binlog_cache寫入到binlog檔案,預設大小為32k,而binlog_cache是session級別的,也就是說實際binlog cache占用記憶體數= connections * binlog_cache,可見如果connection過高,binlog_cache不宜設定的過大,如果binlog_cache設定的過小,不足以滿足commit前transaction產生的binlog時,會引發mysql使用臨時檔案來寫binlog_cache。那麼如何判斷當前session的binlog_cache設定的是否合理呢。可以通過下面的命令檢視。
binlog_cache_use:記憶體中使用binlog_cache次數
binlog_cache_disk_use:使用臨時檔案(即磁碟)寫二進位制日誌次數。
從上面的截圖可以看出,mysql使用了5次臨時檔案來寫入binlog_cache,說明32k的binlog_cache_size對當前mysql來說並不夠用。可根據系統實際的記憶體壓力來調整binlog_cache_size引數。
合理設定索引
索引查詢是資料庫中重要的記錄查詢方法,要不要進入索引以及在那些欄位上建立索引都要和實際資料庫系統的查詢要求結合來考慮,下面給出實際中的一些通用的原則 1.在經常用作過濾器的字段上建立索引 2.在 sql語句中經常進行 group by order by 的字段上建立索引 3.在不同值較少的字段上不必...
判斷IP位址是否合理
方法1 正規表示式判定法 下面給出相對應的驗證ip的正規表示式 d表示0 9的任何乙個數字 表示正好出現兩次 0 4 表示0 4的任何乙個數字 的意思是或者 1 d的意思就是100 199之間的任意乙個數字 2 0 4 d的意思是200 249之間的任意乙個數字 25 0 5 的意思是250 255...
Mysql sql mode的合理設定
sql mode是個很容易被忽視的變數,預設值是空值,在這種設定下是可以允許一些非法操作的,比如允許一些非法資料的插入。在生產環境必須將這個值設定為嚴格模式。所以開發 測試環境的資料庫也必須要設定,這樣在開發測試階段就可以發現問題。值說明 only full group by 對於group by聚...