1、mysql服务调优
①要开启慢查询,可以帮助快速找出执行时间过长的SQL语句,优化查询语句。
②使用压测工具sysbench,调整mysql配置文件/etc/my.cnf中的max_connections=XXXXXX.
③可用redis服务代替mycat+mysql服务,实现读写分离.
④使用最小最简单的数据类型并尽量设置字段为非空。
2、mysql服务故障解决
①客户端报too many connection。
调整mysql配置文件/etc/my.cnf中的max_connections=XXXXXX.
②主从同步延迟(在中继日志中的DML语句数量超出了SQL线程处理的速度)
命令: show slave status,查看的“Seconds_Behind_Master”的值来判断:
0:该值为零,表示主从复制良好;
正值:表示主从已经出现延时,数字越大表示从库延迟越严重。
主库配置sync_binlog=1(从库配置0),innodb_flush_log_at_trx_commit=1。
sync_binlog的默认值是0,MySQL不会将binlog同步到磁盘,其值表示每写多少binlog同步一次磁盘。
innodb_flush_log_at_timeout 的设置只针对 innodb_flush_log_at_trx_commit为0或2时起作用,1时不起作用。
3、mysql迁移
当迁移海量数据时,可用navicat工具实现物理迁移。当迁移规模不大时,可用mysqldump备份原数据库数据为sql文件实现逻辑迁移(msqldump -uroot -p123456 database_name table_name > backup.sql),并用rsync上传至目标备份服务器上。在目标服务器上创建数据库表,并将sql插入到新创建的数据库表上。