一、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常见面试题