MysQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快查询的速度,因此索引对查询的速度有着至关重要的影响。
其实,用不用索引,最终都是优化器说了算。优化器是基于什么的优化器?基于cost开销
(CostBaseOptimizer),它不是基于规则(Rule-Based0ptimizer),也不是基于语义。怎么样开销小就怎么来。另外,SQL语句是否使用索引,跟数据库版本、数据量、数据选择度都有关系。
有几个where过滤条件,就建立几个索引,效率会逐步提升
在建立联合索引时
数据库会根据联合索引中字段顺序依次建立B+树
比如下面这条建立索引的语句
CREATE INDEx idx_age_classid_name oN student