mysql 常见问题收集
2017-08-25 17:05
330 查看
mysql连接数(max_connections)。
mysql 连接数满是很常见问题,其中主要问题体现在php执行代码报错504。 php在执行mysql读取的时候因为长时间的等待超过了PHP.ini(max_excute_time)时间而返回的错误。
1、show processlist
0, 检查当前连接数简单查看数据库的排列执行的信息。1,df -h:检查磁盘空间容量情况(此类情况居多,往往binglog数据占了很大部分)
2,iotop: 查看当前系统IO资源占用,找出占IO资源的进程。
3,hdparm -Tt /dev/vdb:检查磁盘读写情况。整个磁盘读写速度(有时候云商磁盘到期会降低磁盘IO)
2、检查线程ID情况
执行语句:SELECT * FROM information_schema.INNODB_TRX order by trx_mysql_thread_id desc。0,trx_mysql_thread_id: 线程id,与show processlist中的id对应
1,trx_state: 线程状态,show processlist中的state
2,trx_query: 线程执行的sql语句。
3,trx_operation_state: 当前线程执行sql语句状态
4,以上信息与其他信息可以初步分析问题所在
3、使用desc检查sql语句情况
sql语句在select时候没有索引,以及查询sql语句多的情况下,会提高查询时间,不会锁表但会造成大量的链接。1, desc sql: 检查sql执行情况。可以得到rows,keys等基础信息。
2,索引: 添加索引,包括联合索引
3,优化sql语句,使用join链接查询后,会占用一部分内存空间,如果内存不够用,可能需要使用或加大swap内存。
4,对于select的非即使数据,在业务端优先采用缓存,降低对数据的query次数。
5,开启mysql_slow_log,定时发送slow_log慢日志。
6,数据库问题不是运维问题,是需要开发与运维协作完成的
mysql 用户与连接数
0,单例模式会创造一个用户。1,一个event事件代表一次链接请求。
2,如果在高并发,数据库性能消耗较大的情况下。可需要使用缓存:如redis对sql的结果集进行缓存,降低mysql服务的磁盘查询压力。
相关文章推荐
- Linux下MySQL常见问题收集 C语言插入MySQL中文乱码
- C# 操作 Excel 常见问题收集和整理
- 转:Eclipse常见问题,快捷键收集
- 分享一下Mysql常见的几个错误问题及解决方法
- mysql进阶(十六)常见问题汇总
- php常见问题收集
- CentOS查服务器配置、关防火墙、改DNS、mysql配置问题集锦、CentOS编译PHP5.6常见错误
- Oracle常见错误问题收集和解决方案
- MySQL常见问题汇总
- mysql master/slave常见问题处理
- MySQL下常见的启动失败与备份失败问题的解决教程
- MySQL常见问题与命令1
- 安装Apache+PHP+Mysql过程常见问题
- 关于jsp连接mysql的常见问题
- mysql免安装版配置常见问题整理
- Linux 使用rpm方式安装最新mysql(5.7.16)步骤以及常见问题解决
- centOS 7 安装nodeJs & mysql 常见问题
- mysql 常见问题:ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost' (10061)
- 收集Magento FAQ常见问题处理办法
- 【MYSQL】主从常见问题运维