索引是数据库用来提高性能的常用工具,mysql所有的列都可以被索引,每种存储引擎都定义索引长度和索引数量.MyISAM和InnoDB存储引擎默认创建的BTREE索引。
创建索引的语法:create [unique|fulltext|spatal] index index_name
[using index_type] on table_name(index_cal_name....)
删除索引的语法:drop index index_name on table_name
索引的设计:1.查询的结果集占总数据量的比例很小2.某一列经常被用作查询条件3.该列不经常修改
注:经常修改的列会引起索引的重新排列,对数据量较大表会浪费磁盘I/O
索引类型的选择(hash索引还是btree索引)
1.hash索引有一些特种需要在使用时注意
1>只能用于等式比较= <=>
2>优化器不能是用hash索引优化order by操作
2.BTree索引
1>当使用> >= < <= between !=或者<> like 'patten' 其中patten不能以通配符开始都可以使用BTree索引。
创建索引的语法:create [unique|fulltext|spatal] index index_name
[using index_type] on table_name(index_cal_name....)
删除索引的语法:drop index index_name on table_name
索引的设计:1.查询的结果集占总数据量的比例很小2.某一列经常被用作查询条件3.该列不经常修改
注:经常修改的列会引起索引的重新排列,对数据量较大表会浪费磁盘I/O
索引类型的选择(hash索引还是btree索引)
1.hash索引有一些特种需要在使用时注意
1>只能用于等式比较= <=>
2>优化器不能是用hash索引优化order by操作
2.BTree索引
1>当使用> >= < <= between !=或者<> like 'patten' 其中patten不能以通配符开始都可以使用BTree索引。