Mysql索引
上一篇 /
下一篇 2013-03-04 11:50:14
/ 个人分类:Mysql
- 为数据表编制索引
- Mysql提供多种灵活的索引创建办法
- 可以为单个数据列编制索引,也可以为多个数据列构造复合索引
- 索引可以只包含对一无二的值,也可以包含重复的值
- 可以为同一个数据表创建多个索引并分别利用他们来优化基于不同数据列的查询
- 可以只为数据列的一个前缀创建索引,如果数据列在前缀长度范围内具有足够的独一无二性,查询性能会得到改善(为数据列前缀而不是整个数据列编制索引可以让索引本身更小并加快访问速度)
- 并非所有的存储引擎都能提供全部的索引功能
- Mysql支持的索引类型
- 唯一索引:不允许索引项本身出现重复的值
- 普通(非唯一)索引:运行索引值出现重复值
- FullText索引:这种索引支持MyISAM数据表
- SPATIAL索引:这种索引只支持MyISAM数据表和空间数据类型
- HASH索引:这是MEMORY数据表的默认索引类型
- PRIMARY KEY和UNIQUE索引的区别
- 每个数据表只能由一个PRIMARY KEY
- PRIMARY KEY不可以包含NULL值,而UNIQUE索引可以(Mysql无法判断两个NULL值是否代表同样的东西,索引里的多个NULL值将被认为代表多个不同的东西)
- 除PRIMARY KEY以外,其他索引类型都可以用CREATE INDEX语句来添加
- 通过3中方法添加索引
- CREATE TABLE时(index_name是可选的)
- CREATE INDEX时
- ALTER TABLE时(index_name是可选的)
- 当你从数据表删除数据列时,索引也会隐式地受到影响
- 如果你删除的数据列是某个索引的组成部分,mysql将从索引里删除那个数据列
- 如果你把构成某个索引的数据列全部丢弃了,mysql将删除整个索引
收藏
举报
TAG: