MySQL之索引的使用

来源:互联网 发布:瓷砖销售软件破解版 编辑:程序博客网 时间:2024/06/11 21:21

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

允许使用重复的值:

CREATE INDEX index_nameON table_name (column_name)

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

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

如果是字符串类型

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


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

CREATE UNIQUE INDEX index_nameON table_name (column_name)
组合索引
CREATE INDEX PersonIndexON 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
原创粉丝点击