【MySQL】MySQL與IO
該引數控制innodb 快取大小,用於快取應用訪問的資料,推薦配置為系統可用記憶體的80%。
binlog_cache_size
該引數控制二進位制日誌緩衝大小,當事務還沒有提交時,事務日誌存放於cache,當遇到大事務cache不夠用的時,mysql會把uncommitted的部分寫入臨時檔案,等到committed的時候才會寫入正式的持久化日誌檔案。
innodb_max_dirty_pages_pct
該引數可以直接控制Dirty Page在BP中所佔的比率,當dirty page 達到了該引數的閾值,就會觸發MySQL 系統重新整理資料到磁碟
innodb_flush_log_at_trx_commit
該引數確定日誌檔案何時write、flush。
為0,log buffer將每秒一次地寫入log file中,並且log file的flush(刷到磁碟)操作同時進行.該模式下,在事務提交的時候,不會主動觸發寫入磁碟的操作。
為1,每次事務提交時MySQL都會把log buffer的資料寫入log file,並且flush(刷到磁碟)中去.
為2,每次事務提交時MySQL都會把log buffer的資料寫入log file.但是flush(刷到磁碟)操作並不會同時進行。該模式下,MySQL會每秒執行一次 flush(刷到磁碟)操作。
注意:
由於程序排程策略問題,這個“每秒執行一次 flush(刷到磁碟)操作”並不是保證100%的“每秒”。
sync_binlog
sync_binlog 的預設值是0,像作業系統刷其他檔案的機制一樣,MySQL不會同步到磁碟中去而是依賴作業系統來重新整理binary log。
當sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進位制日誌binary log時,會使用fdatasync()函式將它的寫二進位制日誌binary log同步到磁碟中去。
innodb_flush_method
該引數控制日誌或資料檔案如何write、flush。可選的值為 fsync, o_dsync ,o_direct,littlesync,nosync
fdatasync 模式:寫資料時,write這一步並不需要真正寫到磁碟才算完成(可能寫入到作業系統buffer中就會返回完成),真正完成是flush操作,buffer交給作業系統去flush,並且檔案的元資料資訊也都需要更新到磁碟。
O_DSYNC 模式:寫日誌操作是在write這步完成,而資料檔案的寫入是在flush這步通過fsync完成
O_DIRECT模式:資料檔案的寫入操作是直接從mysql innodb buffer到磁碟的,並不用通過作業系統的緩衝,而真正的完成也是在flush這步,日誌還是要經過OS緩衝
注意:關於mysql 和io相關的引數,並不是一成不變的,需要根據自身業務系統和硬體系統做相應調整,系統上線之前,測試出一個最佳值。
相關推薦
【MySQL】MySQL與IO
innodb_buffer_pool_size 該引數控制innodb 快取大小,用於快取應用訪問的資料,推薦配置為系統可用記憶體的80%。 binlog_cache_size 該引數控制二進位制日誌緩衝大小,當事務還沒有提交時,事務日誌存放於cache,當遇到大事務cache不夠
【轉】【MySQL】MySQL的併發控制與加鎖分析
https://www.cnblogs.com/yelbosh/p/5813865.html 本文主要是針對MySQL/InnoDB的併發控制和加鎖技術做一個比較深入的剖析,並且對其中涉及到的重要的概念,如多版本併發控制(MVCC),髒讀(dirty read),幻讀(phantom read
【MySQL】MySQL的安裝與配置
目錄 2.1.2 配置MySQL 5.6 MySQL安裝完畢之後,需要對伺服器進行配置,使用圖形化的配置工具MySQLInstanceConfig.exe。按照前面一節介紹的方法,啟動MySQL Instance Configuratio
【mysql】mysql concat函式與SQL注入
例如:原本查詢語句是 select username,email,content from test_table where user_id=uid;其中uid,是使用者輸入的。正常顯示結果會出現使用者名稱,使用者郵箱,使用者留言內容。但是如果uid過濾不嚴,我們可以構造如下SQL語句來獲得任意資
【MySql】 備份與還原
常用 =================================================================================== 備份mysqldump -h127.0.0.1 -uroot -ppass --databases
【Java與MySQL】String與java.sql.Date、java.sql.Timestap的轉化
/** * String轉換為java.sql.Date * * @param strDate * @return */ public stat
【mysql】mysql中left join使用on 與where篩選的差異
資料表A與資料表B中資料如下: 語句一: Sql程式碼 select A.ID as AID, B.ID as BID from A left join B on A.ID =
【MySQL】MySQL伺服器與客戶端的區別
關於MySQL伺服器和客戶端的區別一直沒有深究,今天突然想弄明白怎麼回事,其實也挺簡單的...現在記錄下 簡單地說,資料庫功能有兩種:“資料維護”、“資料訪問”。細一點地說,“維護”包括資料庫許可權、
【轉】《與MySQL的零距離接觸》第三章:約束以及修改資料表 (3-7:MySQL 修改資料表–刪除約束)
3-7:MySQL 修改資料表–刪除約束 一. 前言 上一節最後我們講到了刪除預設約束,本節我們來講解刪除主鍵約束和唯一約束以及外來鍵約束 二. 刪除主鍵約束 刪除主鍵約束的語法結構: ALTER TABLE tbl_name DROP PRI
【轉】MYSQL-CLUSTER-7.5搭建數據庫集群
安裝教程 讀寫 固定 現在 note res 順序 遠程訪問 關閉 閱讀目錄 前言 mysql cluster中的幾個概念解釋 架構圖及說明 下載mysql cluster 安裝mysql cluster之前 安裝配置管理節點 安裝配置數據和mysql節點
【轉載】MySQL事務以及SELECT ... FOR UPDATE的使用
商品 tail ase -a base 我們 evel erl tel MySQL中的事務,默認是自動提交的,即autocommit = 1; 但是這樣的話,在某些情形中就會出現問題:比如: 如果你想一次性插入了1000條數據,mysql會commit1000次的, 如果我
【轉】mysql執行計劃介紹
sta 備註 dex 統計信息 行數 temp 方式 否則 獲取 原文地址:http://www.jb51.net/article/43306.htm 1.查看mysql執行計劃 explain SELECT * from shippingorder where
【故障】MySQL主從同步故障-Slave_SQL_Running: No
ack counter stop usr mysql-bin back data 連接 xid 轉自:http://www.linuxidc.com/Linux/2014-02/96945.htm 故障現象:進入slave服務器,運行:mysql> show slav
【筆記】mysql入門語句8條
oot rom mysql入門 -h 添加 values arc trunc gdb 1、連接到數據庫服務器 mysql -h host -uroot -pXXXX 2、查看所有庫 show databases; 3、選庫 use 庫名 4、查看庫下面的表 show tab
【坑】 MySQL中,字符串和數值的比較
【坑】 mysql中 字符串和數值的比較 官方文檔:https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html原文:Comparison operations result in a value of 1 (TRUE), 0 (F
【轉】mysql的SQL_NO_CACHE(在查詢時不使用緩存)和sql_cache用法
his let 作用 upd 做了 ble effect table mea 轉自:http://www.169it.com/article/5994930453423417575.html 為了測試sql語句的效率,有時候要不用緩存來查詢。 使用 SELECT SQL
【mysql】mysql 配置
mark mysql gen engine fault my.cnf def class ner 安裝完mysql後, 要及得配置一下 /etc/mysql/my.cnf 配置字符編碼為utf8 [client] default-character-set = utf8
【MySql】mysql-5.7.20-winx64安裝配置
查詢 rac ces sql_mode mysql啟動 str -i 版本 image 序: MySQL在Windows系統上的安裝配置問題。 0x01: 去MySQL的官網下載想要版本的MySQL免安裝文件。https://dev.mysql.com/do
【Sphinx】MySQL+Sphinx 全文檢索的使用和測試
sphinx mysql 增量更新索引文 導讀:最近在線上由於某些不可名狀的原因需要在數據庫中過濾一些詞語,所以線上比較多的語句都是 select c1,c2 fron tb1 where c1 like '%name%'類似與這個樣子的模糊查詢。開始想到了全文索引來進行分詞,但是又想到
【20180105】mysql日常優化一則
ati 添加 http desc clas ima 不知道 gen 1.5 導讀:在日常的MySQL的SQL語句優化工作中,總會遇到了各種各樣的問題。今天就是遇到了一個比較詭異的問題,在這裏記錄下來方便自己的記憶。 MySQL版本信息: MySQL 5.6.3