在MySQL里面,允许用户开启查询缓存。你可以理解这个缓存就是用SQL作为键,而对应的查询结果集就是值。如果下次过来的还是同一个查询,那么就直接返回缓存起来的查询结果集。
但是查询缓存不一定带来查询性能提升。如果你的查询每一次对应的SQL都不一样,那么查询缓存反而会降低性能。
在实践中查询缓存的效果的确不怎么好。按照设计者的想法,查询缓存的最佳使用场景是一些特别复杂的查询,他们会扫描很多行,但是只有一小部分行满足条件。所以MySQL在8.0的时候移除了这个功能。
#
- 后面的提到的参数是否还有改进的空间,记住公司里每一个使用了非默认值的参数
- 如果公司有DBA,可以请教一下DBA,有没有针对公司的业务做过什么优化,包括数据库自身的优化,也包括数据库所在的操作系统的优化。
- 如果文档比较齐全,可以了解一下数据库架构的演进
同时,要为后面的查询优化、参数调优、读写分离和分库分表多准备一些案例。查询优化部分要多准备案例,案例要覆盖不同的优化方向,比如有优化索引的案例,也有优化锁的案例。
参数调优部分在实践中是根据业务特征来选择优化方向,但是在面试的时候可以根据准备的回答来找业务特征,论证自身优化的合理性。
读写分离部分就是看公司有没有用过读写分离,如果有的话,主从切换是手动还是自动。如果是自动的,弄清楚怎么自动切换。
还有分库分表,如果有机会亲身参与分库分表那自然是最好的。要是没有的话,就看看你所在公司是如何从单库演进到分库分表的。如果公司本身也没有分库分表,那么你就可以看看别的大厂发布出来的案例,从各个大厂的技术公众号里就能找到。