原文地址:MySQL面试常见题目(六)
1、字段为何需定义NOT NULL?
NULL会占用更多字节,且NULL有很多坑。
2、如需存储用户密码散列,应使用什么字段?
应使用char,可节省空间且提高检索效率。
3、如何优化大查询?
-
将一个大查询分为多个小的相同查询。
-
减少冗余记录的查询。
-
一个复杂查询可考虑拆成多个简单查询。
-
分解关联查询,让缓存的效率更高。
4、MySQL数据库CPU飙升排查过程?
-
使用top指令观察,确认是mysqlId导致还是其它。
-
如是mysqlId导致,show processlist查看session状况,确认是否有消耗资源的SQL在运行。
-
找出消耗高的SQL,看执行计划是否准确,索引是否缺失,数据量是否过大。
-
如不是,就是大量session连接进来致使CPU飙升,可经过分析原因后进行调整。
5、MySQL数据库CPU飙升解决?
-
kill这些线程,同时观察CPU使用率是否降低。
-
进行相应调整,如加索引、改SQL、改内存参数。
-
重跑SQ