码迷,mamicode.com
首页 > 数据库 > 详细

mysql选错娱乐平台源码搭建索引的原因与处理

时间:2018-12-20 14:43:18      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:plain   ali   数据表   均值   平台   类型   区分   explain   结果   

mysql选错娱乐平台源码搭建《企娥21717 93408》索引的原因与处理
1执行计划预估行数错误
2order by和主键类型不同导致 

索引基数
一个索引上不同的值越多,这个索引的区分度就越好。而一个索引上不同的值的个数,我们称之为“基数”(cardinality)。也就是说,这个基数越大,索引的区分度越好。
我们可以使用 show index方法,看到一个索引的基数。
MySQL 是怎样得到索引的基数的呢?  这里,我给你简单介绍一下 MySQL 采样统计的方法。
为什么要采样统计呢?因为把整张表取出来一行行统计,虽然可以得到精确的结果,但是代价太高了,所以只能选择“采样统计”。
采样统计的时候,InnoDB 默认会选择 N 个数据页,统计这些页面上的不同值,得到一个平均值,然后乘以这个索引的页面数,就得到了这个索引的基数。
而数据表是会持续更新的,索引统计信息也不会固定不变。所以,当变更的数据行数超过 1/M 的时候,会自动触发重新做一次索引统计

扫描行数
根据基数来估算每个索引对应的需要扫描行数
explain sql;
对应的rows是mysql预估的扫描条数
analyze table t;重新统计索引的行数

为什么有时会得到错误的扫描行数?

mysql选错娱乐平台源码搭建索引的原因与处理

标签:plain   ali   数据表   均值   平台   类型   区分   explain   结果   

原文地址:https://www.cnblogs.com/wochenfu/p/10148454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!