=, IN(), IS NULL, or IS NOT NULL,>, <, >=, <=, BETWEEN, !=, or <>,当通过like进行前缀匹配时,Btree的前缀索引也是有效的。
左或者左右模糊匹配**函数**表达式计算**隐式类型转换**当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层 尽量使用主键查询,而不是其他索引,因此主键查询不会触发回表查询 使用前缀索引 使用索引扫描来排序 union,all,in,or都能够使用索引,但是推荐使用in 范围列可以用到索引 强制类型转换会全表扫描 更新十分频繁,数据区分度不高的字段上不宜建立索引 创建索引的列不允许为null,可能会得到不符合预期的结果 当需要进行表连接的时候,最好不要超过三张表,因为需要join的字段数据类型必须一致 能使用limit的时候尽量使用 单表索引建议控制在5个以内 单索引字段数不允许超过五个(组合索引)
数据量小的表写在join的左边,数据量大的表写在join的右边
<aside> 💡
通过hash算法运算直接找到行记录 但是hash不是按顺序排列,范围查找中无法适用
CREATE TABLE example (
id INT NOT NULL,
name VARCHAR(100),
PRIMARY KEY (id) -- 创建主键索引
);
# 添加主键
ALTER TABLE example ADD PRIMARY KEY (id);