sql索引

索引是为了提高查询速度的一种数据结构(比如BTREE)

sql索引

 

 没有建立索引时查找数据只能从上向下顺序查找,时间复杂度是n/2,建立二叉树的索引结构后二叉树的查找效率是log2n,二叉树的节点指向表中的数据行,这样就提高了查找效率.BTREE的m叉树原理一样

索引的缺点:

1 占用空间

2 增删改表时要维护索引(重新平衡二叉树),会降低增删改的速度

索引类型:

BTREE:最常见的索引类型

HASH:只有memory引擎支持

R-tree:空间索引,有关地理位置时使用

Full-text:全文索引

sql索引

 

 

sql索引

 

 B+树中所有数据都存在叶子节点,非叶子节点只起到索引的作用

mysql中主键不用单独创建索引,会自带主键索引

查看表的索引 show index from table_name

删除索引: drop index index_name on table_name

建表后添加索引:

添加主键索引,值唯一且非空  alter table table_name add primary key(column_list);

添加唯一索引,可以为空值且出现多次    alter table table_name add unique index_name(column_list);

添加普通索引,索引值可以重复    alter table table_name add index index_name(column_list);

索引设计原则: 

查询频率高,数据量大

索引列选择where后的条件,on 后的表连接字段

 

sql索引

上一篇:SQL Server的模糊查找


下一篇:oracle