Mysql 索引优化

合适的数据类型

  • 较短数据长度:
    越短的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。
  • char(32)可以存储的就不要用char(64);
  • tinyint可以储存的就不要用int;
  • 简单的数据类型:
    整型数据比起字符,处理开销更小
  • 应该用内置的日期和时间数据类型,不要用字符串来存储时间;
  • 用整型数据存储IP;
  • 尽量避免使用NULL;

B+Tree 联合索引:最左前缀原则

  • like使用时需要注意;
  • 索引字段前后顺序排列需要综合考虑类型长度离散度等指标;

哈希索引:only in Memory

  • Hash索引只支持等值比较;
  • 不能使用hash索引排序;

聚簇索引:只有solidDB和InnoDB支持

  • 根据主键的范围查找会大量减少磁盘IO;
  • 尽量用默认的自增长做为主键,减少增加数据时的移动数据开销与碎片;

覆盖索引

  • 索引项通常比记录要小,所以MySQL访问更少的数据;
  • 索引都按值的大小顺序存储,相对于随机访问记录,需要更少的I/O;
  • 大多数据引擎能更好的缓存索引。比如MyISAM只缓存索引;

全文索引:只有MyISAM引擎支持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容