在我们日常开发中,针对mysql的sql优化,最简单、最常用的方式就是为查询条件加索引。那么为什么加个索引,sql的性能就能有明显的提升呢?这是因为针对没有索引的sql语句,查询是在磁盘中全表扫描过滤的,我们知道计算机中磁盘性能是最低的,相对于CPU和内存来说,慢的可不是一点半点。那么索引中是怎么查询过滤的呢?索引中其实是采用了B+树的方式,在内存中过滤完数据之后,才到磁盘中获取具体的数据,相对于在磁盘中过滤来说,性能当然会提高很多。我们来看一下具体的索引过滤方式。
(想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。完全免费哦!)
mysql索引
mysql中的不同存储引擎的存储方式是不同的,例如,在InnoDB引擎中使用的是聚簇索引,myISAM使用的是非聚簇索引。关于聚簇索引和非聚簇索引的区别我们后面会说到,这里主要说一下InnoDB中的索引。InnoDB索引类型有很多,大致分为两大类,一种是主键索引,一种是普通索引。之所以分为这两种,是因为他们在查询过滤的过程中不太一样。其他的索引后面会讲到。
普通索引
如上图所示,我们看到在普通索引中,索引是以B+树的形式存储的,先大概介绍下B+树。B+树的每个节点可以存储多