关注 “Java艺术”一起来充电吧!
完成需求,不只在于速度,更要考虑质量。在规定的时间内完成需求的情况下,如果还有时间,应当想一下还能怎么优化,从性能、代码可读性、可扩展性层面考虑。进步就是这样一点点积累的。
昨天写的那篇有点小失误,在此修正一下。其实mybatis-plus
提供的优化器做得非常好,它不仅仅只是在优化后的sql
之上加一层select count(1) from (原sql ) as total
,而是直接优化为select count(1) from... where...
,优化后的查询总数的sql
性能更优。
但是limit
的问题,mybatis-plus
优化器是解决不的。如果表的数据量非常大,我们除了优化查询总数的sql
之外,还是需要优化limit
的。
我看到过很多文章介绍说通过id
优化提升limit
性能,他们所举的例子都是单表查询。之所以能只查单表,是因为表的设计上已经通过冗余字段去掉多表连接查询了,这也是值得推荐且主流的优化大表查询性能的做法。
通过在设计表的时候加上冗余字段,去