當我接到一個新的mysql資料庫時,需要搞清楚的資訊

czxin788發表於2019-12-13

當我接到一個新的mysql資料庫時,需要搞清楚如下情況:

1、這個資料庫的版本、字符集、使用的儲存引擎、是否為主從複製、是否為高可用、備份情況、檢視一下近期的慢查詢日誌和ERR日誌、表的資料量、有多少張表、大表有多大等;

2、檢視Mysql當前有哪些觸發器和儲存過程

mysql> show triggers;
mysql> show events;
mysql> show procedure status;
mysql> SHOW FUNCTION STATUS;

3、檢視資料庫是否有分割槽表

select TABLE_NAME from information_schema.PARTITIONS where PARTITION_NAME is not null;

4、執行一會show processlist,看看 Mysql 能有多少併發,一般都是什麼sql。

5、跑一下如下工具,看看mysql的讀寫比例、關注disk讀、full join全表掃描、作業系統環境等情況

pt-summary
pt-mysql-summary
pt-query-digest
pt-show-grants
pt-variable-advisor
pt-query-digest
mysqlreport

6、看看資料庫有哪些使用者

select host,User,Password from mysql.user

7、系統掛載引數

mount -o noatime,nobarrier /dev/sda1/ data

8、看numa是否關閉

numactl --hardware

9、看排程策略是否為deadline或者noop

[root@MySQL02 chenzx]# cat /sys/block/sda/queue/scheduler 
noop anticipatory [deadline] cfq

10、核心引數

vim /etc/sysctl.conf
vm.swappiness <= 10
vm.dirty_ratio<=5
vm.dirty_backgroud_ratio<=10

11、最大檔案控制程式碼數

 vi /etc/security/limits.conf 
*                soft      nofile            102400
*                hard      nofile            102400

12、mysql重點引數

innodb_flush_log_at_trx_commit=1
sync_binlog=1 
binlog_format=ROW
innodb_file_per_table = 1
innodb_log_file_size = 4G
innodb_log_files_in_group = 2
innodb_buffer_pool_size
innodb_buffer_pool_instances
master_info_repository = TABLE 
relay_log_info_repository =TABLE
relay_log_recovery = on
sort_buffer_size
join_buffer_size
read_rnd_buffer_size
tmp_table_size

13、稽核表結構、欄位型別選擇是否合理,比如業務中選擇性很少的狀態status、型別type等欄位是否使用tinytint或者smallint型別,這樣不僅可以節省儲存空間,還能節省BP的利用率、網路傳輸資料包的大小等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2668461/,如需轉載,請註明出處,否則將追究法律責任。

相關文章