目錄
- 如何優化Linux操作系統用於MySQL環境?
- MySQL 8.0 InnoDB哪些新特性你最期待,爲什麼?
- MySQL hang的原因有哪些?
- 專訪王曉偉老師,MySQL數據導入數據倉庫(Hadoop)有哪幾種方式?
一、如何優化Linux操作系統用於MySQL環境?
(一)初級玩法
1、 在BIOS及內核層面關閉NUMA
2、在BIOS層面將CPU、內存均設置最大性能模式
3、在BIOS層面關閉CPU節能模式
4、修改IO Scheduler爲deadline 或 noop
5、使用xfs文件系統,掛載選項noatime、nodiratime、nobarrier
6、在內核層面設置vm.swappiness<=5,vm.dirty_ratio<=10, vm.dirty_background_rati<=5
7、在內核層面修改用戶可最大打開文件數和線程數爲65535
8、禁用SWAP分區
(二)高端玩法
1、使用最新穩定Linux發行版
2、升級各個硬件設備到最新穩定firmware版本
3、使用SSD時,開啓TRIM功能,並且可以的話文件系統block size和SSD對齊
4、當磁盤I/O存在瓶頸時,除了常規因素外,還需要關注中斷不均衡的可能性
二、MySQL 8.0 InnoDB哪些新特性你最期待,爲什麼?
1、數據字典全部採用InnoDB引擎存儲,支持DDL原子性、crash safe,metadata管理更完善
2、快速在線加新列(騰訊互娛DBA團隊貢獻)
3、並行redo log,並提升redo log的I/O性能
4、新增倒序索引
5、增強CBO特性
6、消除了buffer pool mutex(Percona的貢獻)
7、自增ID持久化
8、行鎖增加SKIP LOCKED和NOWAIT特性選項
9、新增事務CATS特性,大大提升事務性能(Michigan大學貢獻)
10、memcached plugin增強
11、增強JSON性能、功能
12、新增智能選項 innodb_dedicated_server
三、MySQL hang的原因有哪些?
1、MySQL使用資源過高導致服務器太累扛不住。例如CPU、內存、 I/O等開銷。
2、磁盤無可用空間。
3、MySQL頻繁的創建和銷燬連接。
4、MySQL使用的最大文件打開數和連接數,超過了操作系統的限制。
5、MySQL的鎖不能有效的釋放。例如持有行鎖或者表鎖,造成了MDL等待。
6、MySQL的bug導致的。
導致MySQL hang住的原因有很多,不侷限於上述因素,還需要機智的你來挖掘。
四、專訪王曉偉老師,MySQL數據導入數據倉庫(Hadoop)有哪幾種方式?
1、傳統方式,採用mysqldump等工具將數據文件上傳至HDFS
2、使用Sqoop Kettle等ETL工具,將數據表對應導入Hive的數據表
3、使用kafka+flume方案,將mysql binlog通過流式採集的方式導入Hadoop
4、設計實現Hive的快照表、增量表、全量表,實現MySQL到Hive數據的增量導入,並支持分庫分表等特性。
公衆號:知數堂,更多MySQL乾貨知識,關注公衆號獲取。
原文鏈接:https://zhishutang.com/B0b
推薦閱讀:https://zhishutang.com/xdI