![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql笔记
文章平均质量分 90
普通网友
这个作者很懒,什么都没留下…
展开
-
mysql 证明为什么用limit时,offset很大会影响性能
id为自增主键,val为非唯一索引。时间相差很明显。为什么会出现上面的结果?我们看一下类似于下面这张图:像上面这样,需要查询300005次索引节点,查询300005次聚簇索引的数据,最后再将结果过滤掉前300000条,取出最后5条。MySQL耗费了大量随机I/O在查询聚簇索引的数据上,而有300000次随机I/O查询到的数据是不会出现在结果集当中的。肯定会有人问:既然一开始是利用索引的,为什么不先沿着索引叶子节点查询到最后需要的5个节点,然后再去聚簇索引中查询实际数据。转载 2022-08-22 15:42:55 · 275 阅读 · 0 评论 -
mysql的innodb快速count技巧
mysql的innodb因为使用的是聚簇索引,导致count的时候按照索引count,会把聚簇索引里面的数据一起扫描了,导致count起来非常慢,30w的数据,做一次count(*)竟然高达30多秒。经过网上查询看到一个大佬的测试https://imysql.cn/2008_06_24_speedup_innodb_count发现一个技巧,可以额外创建一个字段,字段和主键ID数据一致,然后对该字段建索引,然后再使用count,这样速度就飞起了...原创 2020-11-21 17:39:47 · 777 阅读 · 0 评论 -
mysql排序后置顶部分数据
今天遇到需要把部分结果置顶的需求,也就是查出N个记录后,其中2条无论怎么变都要放在最上面,就像论坛帖子置顶一样例子如下:SELECT `AritcleID` FROM `article` LIMIT 0 ,20;排序SELECT `AritcleID` FROM `article` LIMIT 0 ,20 ORDER BY `AddTime` DESC;结果就是 20,19,...原创 2020-01-09 14:17:58 · 1790 阅读 · 1 评论 -
mysql判断字段里面出现了几次指定字符
其实这种方式主要是计算举个例子,比如一个Title字段,里面有很多标题,里面出现了很多下划线:今日新闻_城市新闻_城市娱乐_旅游推荐_小编精选,现在要选出有3个以上下划线的记录出来SELECT ID, Title, Keywords, Description FROM `article_news` WHERE (LENGTH( Title ) - LENGTH( REPL...原创 2019-12-23 10:43:56 · 727 阅读 · 0 评论