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;

posted @ 2019-05-06 17:31  叶落撒  阅读(133)  评论(0编辑  收藏  举报