索引设计原则
1. 搜索的索引列,不一定是所要选择的列。也就是说,最适合索引的列是出现在where子句中的列,或者连接子句中指定的列,而不是出现在select关键字后的选择列表中的列。
2. 使用唯一索引。考虑某列的分布,索引的列的基数越大,索引的效果越好。例如,对性别M/F列做索引没多大用处。
3. 使用短索引。如果是对字符串进行索引,如果有可能应该指定前缀长度。
4. 利用最左前缀。尽量将使用频繁且过滤效果好的字段放“左边”
5. 不要过度索引。
6. Innodb默认会按照一定的顺序保存数据,如果明确定义了主键,则按照主键顺序保存。如果没有主键,但有唯一索引,就按照唯一索引的顺序保存。如果有几个列都是唯一的,都可以作为主键的时候,为了提高查询效率,应选择最常用访问的列作为主键。另外,innodb的普通 index都会保存主键的键值,所有主键要尽可能选择较短的数据类型。可以看出,应当尽量避免对主键的修改。经过dba的测试,保证主键的递增可以提高插入性能。
针对6的部分, select time from table a where id >xxxx 。 其中id为主键。 所以在执行的时候, 如果time 也是索引 ,会执行索引覆盖。
时间: 2024-10-16 19:49:13