临近年底,出来面试的人也多了起来。我发现不少候选人,对数据库的认知还处在比较基础的阶段,以为会写**“增删改查”、做表关联**就足够了,那些工作中经常出现的问题,却支支吾吾答不上来,比如:
◆ count(*) 慢该如何解决?
◆ 对于千万级的大表,MySQL 要怎么优化?
◆ SQL 使用 Join 好,还是多次 Select 好?
◆ 1000 多万条数据,建了索引还是慢,该怎么办?
想来,我在用 MySQL 的过程中,遇到的问题也是五花八门,从开发技巧到管理维护,从性能问题到安全问题。
第一个感受就是,MySQL 本身是个设计优良的系统,其中有很多巧妙的设计思路,比如** WAL 机制、索引的实现、缓存的处理方式等等**,掌握好这些,能解决日常工作中的很多问题。
那会儿,也没少在网上找资料,虽说有所收获,但内容大多脱离真实的软件开发,看的时候各种明白,上手实操就原形毕露了。太简短不全面,禁不住深挖,因此很多次都掉坑里,那么如何避坑呢?