vlambda博客
学习文章列表

数据库优化该怎么回答这个问题?

大家好:有太多人在咨询我这个数据库优化该怎么回答这个问题,其实我没办法直接给你答案的,我只能够告诉你去学什么就能够回答这个问题了;


我在这里统一的回复,分为三大模块

    1、分析人家问你的原因。

    2、解决问题的方案。

    3、给你学习的方向


第一个分析:人家这么问你就是考察你对索引的认识,担心你进了公司之后sql乱写,导致人家创建的好的索引搞失效了,最终数据库变慢,并不是要你去搞数据库优化,你去搞你觉得人家放心吗?人家最终的想法是需要你懂一些数据库优化的知识,担心你把人家很规矩的数据库做乱了。所以呢,你只需要讲一些数据库优化的知识说出去就完全ok了。其实公司内部经常有一句话,就是“新员工来了,速度就慢了,新员工走了速度就快了”。所以你不要做那个捣乱的人。


第二个解决问题的方案:这个方案特别适合包装经验的人去说了,因为你包装了又有这方面的知识,人家听到后是很满意的,,当你说出这些方案之后你已经干掉了跟你一起求职的大部分人了,成为备选中的一员。如果你不想包装只想找实习,这回答也是非常加分的回答。

这个解决问题方案的话有很多,我只讲两个你要说出去的;

    方案第一个就是给数据库做缓存,缓存的方式有很多种,所以等下会给你学习的方向,只要你学会了一般面试绝对ok的;(这一块为辅助,唠嗑专用)

    方案第二个就是使用explain查看索引的情况;(这一块为主场,回答加分专用)


好了剩下的就是方案中的学习方向:

    缓存的学习方向:

            缓存有mybatis的一二级缓存和redis非关系型数据库,还有数据库自带的缓存( MySQL自身缓存的启动状态 默认是开启的,但是没有空间的大小 大小默认是 B),先说mybatis你可以去学一下它的<setting/>标签,里面设置的一些参数,主要就有连表查询的缓冲区配置,一二级缓存的设置,还有sql日志打印,等等。总之你去学会它一般说这个mybatis的缓存也就没问题了,你最好的学习方式就是自己手工的配置两三遍来玩一下。


            现在说redis、mongodb等非关系型的数据库操作,这两个数据库是市场中比较常用的,主redis的学习,主要就是学习内容:设置进去、取出来、查看、设置有效期、删除等等,


            还有就是explainl ,你去找MySQL explain就能够学会了,最好自己操作两三遍不要背诵,背是背不出来的。


            最后一个是MySQL自身缓存了,默认是开启的,但是没有空间的大小,这个需要去设置,你可以去学一下这个操作命令;# set global query_cache_size



总结:上面讲的主要就是被问数据库优化的你该怎么回答?主要推荐你回答这个explain关键字知识内容,因为人家担心你对索引一无所知,所以你只要掌握这个explain关键字这个技能就能够很轻松的回答了,然后再用缓存去引导面试官跟你唠嗑,这样面试时间你就很好掌控在自己手上啦;


好了,今天分享就到这里,关键时候到了,别忘了给我点赞和关注哦,同时也希望给我点赞和关注的朋友,面试顺利,offer拿到手软。