一、mysql数据库cpu飙升到500%的话他怎么处理
1. 多实例的服务器,先top查看是那一个进程,哪个端口占用CPU多;
2. show processeslist查看是否由于大量并发,锁引起的负载问题;
3. 否则,查看慢查询,找出执行时间长的sql;explain分析sql是否走索引,sql优化;
4. 再查看是否缓存失效引起,需要查看buffer命中率;
二、 执行数据库查询时候,如果查询的数据有很多,假设有1000万条,用什么方法可以提高查询效率?在数据库方面或java代码方面有什么优化办法?
1.在数据库设计方面
(1)建立索引
(2)分区(比如说按时间分区)
(3)选取最适用的字段属性(尽量减少字段宽度和使用固定长度的字段)
2.在数据库I/O方面
(1)增加缓冲区
(2)如果涉及到表的级联,最好不同的表放在不同的磁盘,以增加I/O速度
3.Sql语句方法
(1)优化sql语句,减少比较次数,可用连表查询来代替子查询
(2)限制返回的条目数(mysql用limit)
(3)有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就
去掉外键(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商)
4.在java方面
如果反复使用的查询,可通过preparedstatement,因为他在运行前已经预编译,只要运行就Ok了.
更多推荐
MySQL常见面试题
发布评论