mysql
孑孓独活
年轻的小猿
展开
-
sql分页查询越往后越慢
背景我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx limit 1,20。当数据量比较小时(100万以内),无论你翻到哪一页,性能都是很快的。如果查询慢,只要在where条件和order by 的列上加上索引就可以解决。但是,当数据量大的时候(小编遇到的情况是500万数据),如果翻到最后几页,即使加了索引,查询也是非常慢的,这是什么原因导致的呢?我们该如何解决呢原创 2021-10-18 11:02:01 · 2674 阅读 · 0 评论 -
mysql先链表再查询和先查询再链表的区别
test1表idname1ruan2zhangtest2表idtest1_id1122进行链表第一种:先全链表再筛选第二种:先筛选再链表会发现第一中没了所以链表的时候如果想保持主表的数据 同时还要筛选从表的数据,应该先筛再链表这样的好处:1:减少链表次数,提高效率2:避免把主表数据筛选没了,因为把查询条件写在最后,链表的结果相当于一张表了,链表的执行顺序高于where...原创 2021-05-18 11:06:25 · 894 阅读 · 1 评论 -
mysql case when灵活使用行列转换
之前使用mysql的case when 一直当做转义来进行使用今天遇到一个数据库表结构设计是这样的项目节点项目时间xmjd222020-1-1xmjd2320202-1xmjd22对应开工时间xmjd23对应竣工时间想实现效果开工时间竣工时间2020-1-12020-2-1其实就是使用case when实现行列转换但是 要灵活运用写法:select a.id,a,name,(case a.xmjd when 'x原创 2021-04-15 15:00:33 · 228 阅读 · 0 评论