ITPub博客

首页 > 数据库 > MySQL > 当我接到一个新的mysql数据库时,需要搞清楚的信息

当我接到一个新的mysql数据库时,需要搞清楚的信息

原创 MySQL 作者:czxin788 时间:2019-12-13 13:32:17 0 删除 编辑

当我接到一个新的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/,如需转载,请注明出处,否则将追究法律责任。

全部评论

注册时间:2014-06-03

  • 博文量
    201
  • 访问量
    640173