MySQL遇到的知识点
1. MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写;
2.利用延迟关联或者子查询优化超多分页场景。
说明: MySQL 并不是跳过 offset 行,而是取 offset + N 行,然后返回放弃前 offset 行,返回
N 行,那当 offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过
特定阈值的页数进行 SQL 改写。
正例:先快速定位需要获取的 id 段,然后再关联:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id;
3.count(*)会统计值为null的行,count(列名)不会统计值为null的行;
4.当某一列的值全是 NULL 时, count(col) 的返回结果为 0,但 sum(col) 的返回结果为
NULL ,因此使用 sum() 时需注意 NPE 问题。
正例:可以使用如下方式来避免 sum 的 NPE 问题: SELECT IF(ISNULL(SUM(g)) ,0, SUM(g))
FROM table;