MySQL之索引的使用

SQL CREATE INDEX 语法:在表上创建一个简单的索引。

允许使用重复的值:

CREATE INDEX index_name
ON table_name (column_name)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

CREATE INDEX PersonIndex
ON Person (LastName DESC) 
创建表的时候直接指定
          CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (ID) );

如果是字符串类型

CREATE INDEX indexName ON
mytable(username(length));
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定length这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。


SQL CREATE UNIQUE INDEX 语法
          在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。  

CREATE UNIQUE INDEX index_name
ON table_name (column_name)
组合索引
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
删除索引
DROP INDEX [indexName] ON mytable; 
举一个例:
CREATE TABLE People (
   last_name varchar(50)    not null,
   first_name varchar(50)    not null,
   dob        date                   not null,
   gender     enum('m', 'f')    not null,
);
在last_name、first_name和dob上建立一个组合索引。

注意:
使用索引有以下一些限制:
(1) 查询必须从索引的最左边的列开始。例如你不能利用索引查找在某一天出生的人。
(2) 不能跳过某一索引列。例如,你不能利用索引查找last name为Smith且出生于某一天的人。
(3) 存储引擎不能使用索引中范围条件右边的列。例如,如果你的查询语句为WHERE last_name="Smith" AND first_name LIKE 'J%' AND dob='1976-12-23',则该查询只会使用索引中的前两列,因为LIKE是范围查询。

如下情况可使用该索引:

(1)匹配全值(Match the full value):对索引中的所有列都指定具体的值。例如,上述索引可以帮助你查找出生于1960-01-01的Cuba Allen。

(2)匹配最左前缀(Match a leftmost prefix):你可以利用索引查找last name为Allen的人,仅仅使用索引中的第1列。

(3)匹配列前缀(Match a column prefix):例如,你可以利用索引查找last name以J开始的人,这仅仅使用索引中的第1列。

(4)匹配值的范围查询(Match a range of values):可以利用索引查找last name在Allen和Barrymore之间的人,仅仅使用索引中第1列。

(5)匹配部分精确而其它部分进行范围匹配(Match one part exactly and match a range on another part):可以利用索引查找last name为Allen,而first name以字母K开始的人。

(6)仅对索引进行查询(Index-only queries):如果查询的列都位于索引中,则不需要读取元组的值。

参考资料:

http://www.php100.com/html/webkaifa/database/Mysql/2013/0316/12223.html

http://blog.csdn.net/gzh0222/article/details/7564607

http://wenku.baidu.com/link?url=Ev2lb1_sF9LOR0tmPIJD3U4oYgSRx5Pj7X2AK0zvv9wJUZqm3WKnIpqhDNm0N4fp5J8BjSX1oNEwRmgUHbRCZGXy2w0GfpxepDLvxUbTNje
http://book.51cto.com/art/201012/240959.htm

http://book.2cto.com/201207/639.html



输入验证码进入下载列表选普通不限速下载
打开就知道怎么用,附名称和下载地址
fqrouter:http://www.400gb.com/file/77885845
EasyVPN:http://www.400gb.com/file/71244208
SuperVPN:http://www.400gb.com/file/71245132
Hola:http://www.400gb.com/file/71246083
电脑使用的webfreer,最新版本的,解压缩后直接使用
http://www.400gb.com/file/69045621



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值