MySQL
少年白头12138
这个作者很懒,什么都没留下…
展开
-
MySQL代替in之临时表
如果我们正常的使用IN去查询SELECT * FROM aJOIN b ON a.id = b.idWHERE b.tag_id IN (1,2,3,4,5,6)这种因为in里面的参数是连续的,它很快如果in里面的数据不是连续的,SELECT * FROM aJOIN b ON a.id = b.idWHERE b.tag_id IN (88,2,303,410,581,316)这种数据量一起来,它会很慢解决方法,将in里面的数据更改为临时表去关联查询SELECT * .原创 2021-11-26 16:27:50 · 1480 阅读 · 0 评论 -
JSqlParser解析SQL时SUM包裹IF出错
SQLSELECT SUM(IF(1=1,1,0)) AS `result` FROM sys_usersql```这种会报错的。# 错误信息Caused by: net.sf.jsqlparser.JSQLParserException: null at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:154) at com.baomidou.mybatisplus.core.pa原创 2021-10-08 20:40:25 · 790 阅读 · 2 评论 -
|MySQL数据量大时limit往后会速度变慢
当数据量特别大的时候,我们有如下SQL:SELECT * FROM t LIMIT 10000,10当数据量有上百万的时候,这种查询是很慢的。但我们将 * 改为索引字段时:SELECT ID FROM t LIMIT 10000,10# 这种查询就会很快。那么我们需要将SQL改造如下:SELECT * FROM t WHERE ID IN (SELECT ID FROM t LIMIT 10000,10)然后现在速度就快了起来。当然也可以改造为如下:SELECT * F.原创 2021-07-23 16:46:09 · 1087 阅读 · 0 评论