mysql的一些知识

87 阅读1分钟

百万级别的分页

方式一

直接select * from limit M,N
适用数据量小的场景。
缺点:全表扫描,速度很慢,从M的地方取出N条,其余抛弃。

方式二

使用主键索引或者唯一索引,使用limit的方式 SELECT * FROM 表名称 WHERE id_pk > (pageNum10) LIMIT M 会漏掉数据 SELECT * FROM 表名称 WHERE id_pk > (pageNum10) ORDER BY id_pk ASC LIMIT M

如何处理大量的in操作

首先区别in和exists的区别。 如果实在很多,那么对查询的数据做一个临时表,筛选字段作为主键id。然后使用left join的方式去处理。
select *from 临时表 t1 left join 原来的表t2 where t1.id = t2.id。