亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

innodb_flush_method取值方法(實例講解)

2024-07-24 13:12:39
字體:
來源:轉載
供稿:網友

innodb_flush_method的幾個典型取值

fsync: InnoDB uses the fsync() system call to flush both the data and log files. fsync is the default setting.O_DSYNC: InnoDB uses O_SYNC to open and flush the log files, and fsync() to flush the data files. InnoDB does not use O_DSYNC directly because there have been problems with it on many varieties of Unix.O_DIRECT: InnoDB uses O_DIRECT (or directio() on Solaris) to open the data files, and uses fsync() to flush both the data and log files. This option is available on some GNU/Linux versions,FreeBSD, and Solaris.

 

如何取值,mysql官方文檔是這么建議的

How each settings affects performance depends on hardware configuration and workload. Benchmarkyour particular configuration to decide which setting to use, or whether to keep the default setting.Examine the Innodb_data_fsyncs status variable to see the overall number of fsync() calls foreach setting. The mix of read and write operations in your workload can affect how a setting performs.For example, on a system with a hardware RAID controller and battery-backed write cache, O_DIRECTcan help to avoid double buffering between the InnoDB buffer pool and the operating system's filesystem cache. On some systems where InnoDB data and log files are located on a SAN, the defaultvalue or O_DSYNC might be faster for a read-heavy workload with mostly SELECT statements. Alwaystest this parameter with hardware and workload that reflect your production environment

 

也就是說,具體的取值跟硬件配置和工作負載相關,最好做一次壓測來決定。不過通常來說,linux環境下具有raid控制器和write-back寫策略,o_direct是比較好的選擇;如果存儲介質是SAN,那么使用默認fsync或者osync或許更好一些。

通常來說,貌似絕大部分人都取值o_direct,底層有raid卡,讀寫策略設置為write-back。在使用sysbench壓測oltp類型時,我發現o_direct確實比fsync性能優秀一些,看來適用于大部分場景,但是最近碰到一個這樣的sql,客戶反饋很慢,而在相同內存的情況下,它自己搭建的云主機執行相對快很多,后來我發現主要就是innodb_flush_method的設置值不同帶來的巨大性能差異。

測試場景1

innodb_flush_method為默認值,即fsync,緩存池512M,表數據量1.2G,排除緩存池影響,穩定后的結果

mysql> show variables like '%innodb_flush_me%';+---------------------+-------+| Variable_name    | Value |+---------------------+-------+| innodb_flush_method |    |+---------------------+-------+1 row in set (0.00 sec)mysql> SELECT sql_no_cache SUM(outcome)-SUM(income) FROM journal where account_id = '1c6ab4e7-main';+--------------------------+| SUM(outcome)-SUM(income) |+--------------------------+|        -191010.51 |+--------------------------+1 row in set (1.22 sec)mysql> SELECT sql_no_cache SUM(outcome)-SUM(income) FROM journal where account_id = '1c6ab4e7-main';+--------------------------+| SUM(outcome)-SUM(income) |+--------------------------+|        -191010.51 |+--------------------------+1 row in set (1.22 sec)mysql> explain SELECT sql_no_cache SUM(outcome)-SUM(income) FROM journal where account_id = '1c6ab4e7-main';+----+-------------+---------+------+---------------+------------+---------+-------+--------+-----------------------+| id | select_type | table  | type | possible_keys | key    | key_len | ref  | rows  | Extra         |+----+-------------+---------+------+---------------+------------+---------+-------+--------+-----------------------+| 1 | SIMPLE   | journal | ref | account_id  | account_id | 62   | const | 161638 | Using index condition |+----+-------------+---------+------+---------------+------------+---------+-------+--------+-----------------------+1 row in set (0.03 sec)

 

測試場景2

innodb_flush_method改為o_direct,排除緩存池影響,穩定后的結果

mysql> show variables like '%innodb_flush_me%';+---------------------+----------+| Variable_name    | Value  |+---------------------+----------+| innodb_flush_method | O_DIRECT |+---------------------+----------+1 row in set (0.00 sec)mysql> SELECT sql_no_cache SUM(outcome)-SUM(income) FROM journal where account_id = '1c6ab4e7-main';+--------------------------+| SUM(outcome)-SUM(income) |+--------------------------+|        -191010.51 |+--------------------------+1 row in set (3.22 sec)mysql> SELECT sql_no_cache SUM(outcome)-SUM(income) FROM journal where account_id = '1c6ab4e7-main';+--------------------------+| SUM(outcome)-SUM(income) |+--------------------------+|        -191010.51 |+--------------------------+1 row in set (3.02 sec)mysql> explain SELECT sql_no_cache SUM(outcome)-SUM(income) FROM journal where account_id = '1c6ab4e7-main';+----+-------------+---------+------+---------------+------------+---------+-------+--------+-----------------------+| id | select_type | table  | type | possible_keys | key    | key_len | ref  | rows  | Extra         |+----+-------------+---------+------+---------------+------------+---------+-------+--------+-----------------------+| 1 | SIMPLE   | journal | ref | account_id  | account_id | 62   | const | 161638 | Using index condition |+----+-------------+---------+------+---------------+------------+---------+-------+--------+-----------------------+1 row in set (0.00 sec)

 

結果比較:

兩者執行計劃一摸一樣,性能卻差距很大。在數據庫第一次啟動時的查詢結果也差距很大,o_direct也差很多(測試結果略)。不是很懂為啥這種情況下多了一層操作系統緩存,讀取效率就高了很多,生產環境設置一定要以壓測結果為準,實際效果為準,不能盲目信任經驗值。

改進措施:

不改變innodb_flush_method的情況下,其實這條sql還可以進一步優化,通過添加組合索引(account_id,outcome,income),使得走覆蓋索引掃描,可大大地減少響應時間

以上這篇innodb_flush_method取值方法(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。

 

注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美二区乱c黑人| 欧美亚洲另类视频| 亚州精品天堂中文字幕| 久久久久久国产精品三级玉女聊斋| 久久久久久久999精品视频| 国内成人精品一区| 久久久久久久久久久亚洲| 欧美激情精品久久久久久久变态| 欧美亚洲国产视频| xxx成人少妇69| 搡老女人一区二区三区视频tv| 亚洲天堂av在线免费| 国产精品欧美亚洲777777| 国产一区在线播放| 欧美激情第99页| 久久久久久一区二区三区| 欧美性猛交xxxx乱大交3| 国产精品免费久久久久影院| 欧美xxxx做受欧美| 国产自摸综合网| 欧美日韩国产成人在线| 97人洗澡人人免费公开视频碰碰碰| 精品视频偷偷看在线观看| 91色视频在线观看| 欧美性猛交视频| 国产精品日韩在线播放| 欧美成人免费观看| 神马国产精品影院av| 91在线观看免费高清完整版在线观看| 一区二区欧美日韩视频| 久久影院模特热| 国产成人精品免高潮费视频| 亚洲成人精品av| 久久99视频精品| 欧美国产在线视频| 亚洲第一色在线| 亚洲男人的天堂在线播放| 911国产网站尤物在线观看| 日韩中文第一页| 日韩av在线播放资源| 菠萝蜜影院一区二区免费| 欧美最猛黑人xxxx黑人猛叫黄| 久久久久这里只有精品| 欧美精品久久久久| 亚洲国产日韩欧美综合久久| 亚洲国产精品人久久电影| 久久6免费高清热精品| 91久久精品久久国产性色也91| 久久综合久久八八| 成人激情视频小说免费下载| 成人免费看黄网站| 日韩国产精品视频| 亚洲第一精品自拍| 九九视频直播综合网| 成人国产精品一区二区| 中文字幕成人精品久久不卡| 欧美视频在线观看 亚洲欧| 成人在线视频网站| 国产成人精品日本亚洲专区61| 在线观看日韩欧美| 精品视频在线观看日韩| 国产又爽又黄的激情精品视频| 亚洲精品成人免费| 欧美成人免费小视频| 色先锋久久影院av| 国产第一区电影| 激情成人中文字幕| 欧美另类69精品久久久久9999| 国产视频精品自拍| 日日摸夜夜添一区| 97免费视频在线播放| 欧美黄色性视频| 欧美成人黑人xx视频免费观看| 成人在线观看视频网站| 在线电影欧美日韩一区二区私密| 国产日韩中文字幕在线| 日韩av网站在线| 最近2019免费中文字幕视频三| 国产日韩欧美在线| 色偷偷噜噜噜亚洲男人的天堂| 91成人在线观看国产| 91久久综合亚洲鲁鲁五月天| 日本91av在线播放| 国产999在线观看| 久久久免费精品视频| 日本成人精品在线| 国产精品一区二区三区久久| 亚洲男人第一网站| 欧美三级欧美成人高清www| 4k岛国日韩精品**专区| 亚洲成人精品视频在线观看| 伊人成人开心激情综合网| 久久激情五月丁香伊人| 成人免费自拍视频| 欧美寡妇偷汉性猛交| 97av在线影院| 91青草视频久久| 欧美激情小视频| 亚洲欧美日韩精品久久亚洲区| 中文字幕亚洲综合| 欧美日韩国内自拍| 日本久久中文字幕| 91爱爱小视频k| 亚洲高清不卡av| 久久夜精品香蕉| 精品成人av一区| 性欧美视频videos6一9| 欧美大秀在线观看| 91嫩草在线视频| 久久久国产一区二区| 国产精品日韩久久久久| 国产免费一区二区三区在线能观看| 最近2019中文字幕大全第二页| 91高清视频在线免费观看| 国产亚洲欧美aaaa| 国产一区玩具在线观看| 欧美人与性动交a欧美精品| 日韩在线www| 亚洲成人免费在线视频| 久久久99久久精品女同性| 午夜精品久久久久久久久久久久| 欧美一级淫片videoshd| 亚洲国产日韩精品在线| 另类专区欧美制服同性| 亚洲一区二区三区在线免费观看| 精品久久久精品| 国产丝袜一区二区三区| 国产精品第10页| 中文字幕不卡av| 日韩在线激情视频| 日韩在线播放一区| 亚洲电影天堂av| 国产热re99久久6国产精品| 欧美自拍视频在线| 亚洲一区免费网站| 91国产高清在线| 国产精品女主播| 亚洲精品欧美一区二区三区| 国产日韩换脸av一区在线观看| 国产女同一区二区| 国语自产精品视频在线看一大j8| 久久精品国产v日韩v亚洲| 欧美精品中文字幕一区| 日韩电影中文字幕一区| 日韩精品视频中文在线观看| 日韩欧美成人免费视频| 岛国av一区二区| 亚洲一区二区久久久| 亚洲国产天堂久久综合| 国产精品欧美激情| 日韩高清电影免费观看完整版| 日韩性xxxx爱| 国产精品青草久久久久福利99| 久久99久久99精品免观看粉嫩| 欧美性生交大片免费| 日韩大片在线观看视频| 日韩av电影在线免费播放| 国产在线高清精品| 欧美专区第一页| xxx成人少妇69| 精品亚洲一区二区| 91高清在线免费观看| 国产日本欧美一区二区三区| 国产精品久久91|