原文地址:MySQL面试常见题目(六)

1、字段为何需定义NOT NULL?

NULL会占用更多字节,且NULL有很多坑。

2、如需存储用户密码散列,应使用什么字段?

应使用char,可节省空间且提高检索效率。

3、如何优化大查询?

  1. 将一个大查询分为多个小的相同查询。

  2. 减少冗余记录的查询。

  3. 一个复杂查询可考虑拆成多个简单查询。

  4. 分解关联查询,让缓存的效率更高。

4、MySQL数据库CPU飙升排查过程?

  1. 使用top指令观察,确认是mysqlId导致还是其它。

  2. 如是mysqlId导致,show processlist查看session状况,确认是否有消耗资源的SQL在运行。

  3. 找出消耗高的SQL,看执行计划是否准确,索引是否缺失,数据量是否过大。

  4. 如不是,就是大量session连接进来致使CPU飙升,可经过分析原因后进行调整。

5、MySQL数据库CPU飙升解决?

  1. kill这些线程,同时观察CPU使用率是否降低。

  2. 进行相应调整,如加索引、改SQL、改内存参数。

  3. 重跑SQL看效果。

6、常见读写分离方案?

  1. 应用程序根据业务逻辑判断,增删改指令发给主库,查询指令发给从库。

  2. 利用中间件做代理实现,如amoeba、mysql-proxy。

7、MySQL中TEXT数据类型的最大长度?

  1. TINYTEXT:256字节。

  2. TEXT:65535字节(64KB)。

  3. MEDIUMTEXT:16777215字节(16MB)。

  4. LONGTEXT:4294967295字节(4GB)。

8、数据库不支持emoji存储如何操作?

更换字符集从utf8改为utf8mb4.

9、MySQL如何获取当前日期?

select CURRENT_DATE();

至此,本次分享就结束了,后期会慢慢补充的。

以上仅为个人观点,不一定准确,能帮到各位那是最好的。

好啦,到这里本文就结束了,喜欢的话就来个三连击吧。

以上均为个人认知,如有侵权,请联系删除。

  

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐