原文地址: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();
至此,本次分享就结束了,后期会慢慢补充的。
以上仅为个人观点,不一定准确,能帮到各位那是最好的。
好啦,到这里本文就结束了,喜欢的话就来个三连击吧。
以上均为个人认知,如有侵权,请联系删除。