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、改内存参数。
- 重跑SQL看效果。
6、常见读写分离方案?
- 应用程序根据业务逻辑判断,增删改指令发给主库,查询指令发给从库。
- 利用中间件做代理实现,如amoeba、mysql-proxy。
7、MySQL中TEXT数据类型的最大长度?
- TINYTEXT:256字节。
- TEXT:65535字节(64KB)。
- MEDIUMTEXT:16777215字节(16MB)。
- LONGTEXT:4294967295字节(4GB)。
8、数据库不支持emoji存储如何操作?
更换字符集从utf8改为utf8mb4.
9、MySQL如何获取当前日期?
select CURRENT_DATE();
至此,本次分享就结束了,后期会慢慢补充的。
以上仅为个人观点,不一定准确,能帮到各位那是最好的。
好啦,到这里本文就结束了,喜欢的话就来个三连击吧。
以上均为个人认知,如有侵权,请联系删除。