标签:count 跟进 研究 limit mysql table NULL id select
- count(1)对比 count(*)
- count(N),N指的是列的序列号,innodb引擎下一般为主键列;count(*),mysql优化器也会将统计列自动优化。所以日常使用区别不大
- 阿里规范里的【强制】不要使用 count(列名)或 count(常量)来替代 count(*),count(*)是 SQL92 定义的 标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。 说明:count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行
- order by 和 limit 一起使用陷阱
- 会引发数据丢失,处理方案:加一个唯一索引字段加入排序。
- 千万级数据量的表 limit查询优化
- select id,title from table where id>=(select id from table order by id limit 90000,1) limit 10;
- select后只跟主键id,查询、排序字段用联合索引包涵,查询出ids再查所需记录。
- 联合查询
- 推荐使用显示内联,tmp中间表为on条件出来的表
- in、exist 小表驱动大表?【待补充】
- mysql位运算的使用
- 处理单个子段对应多个属性的场景,e.g:存多个角色、存多个状态等 field & #{val}
- ddl导致的慢sql?【待补充】
- varchar(21845)
- 行记录大小65535b
- utf-8一个字符最多占3个字节/gbk最多占2个字节
- 执行计划中Cardinality:不重复记录的预估值
- 值越小越不推荐建立索引
- Cardinality/n_row_in_table尽可能接近1
- 预估值,非准确值
标签:count,跟进,研究,limit,mysql,table,NULL,id,select 来源: https://www.cnblogs.com/wangzepu/p/11389670.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。