MySQL索引范例大汇总[MySQL防范]
本文“MySQL索引范例大汇总[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文主要介绍了7种差别范例的MySQL索引范例.在MySQL数据库表中,对字段举行成立索引是可以大幅度的提高其实际查询速度.通过对这些索引的巧妙的应用,我们可以令MySQL的查询和运行越发高效.
索引是快速搜索的关键.MySQL索引的成立关于MySQL的高效运行是很重要的.
下面介绍几种常见的MySQL索引范例:
在数据库表中,对字段成立索引可以大大提高查询速度.假定我们成立了一个 mytable表:
- CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL );
我们随机向里面插入了10000条记录,此中有一条:5555, admin.
在查找username="admin"的记录
- SELECT * FROM mytable WHERE username='admin';
时,假如在username上已经成立了索引,MySQL无须任何扫描,即精确可找到该记录.相反,MySQL会扫描全部记录,即要查询10000条记录.
索引分单列索引和组合索引.单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引.组合索引,即一个索包含多个列.
MySQL索引范例包含:
(1)普通索引
这是最基本的索引,它没有任何限制.它有以下几种成立方法:
成立索引
- CREATE INDEX indexName ON mytable(username(length));
假如是CHAR,VARCHAR范例,length可以小于字段实际长度;假如是BLOB和TEXT范例,必须指定 length,下同.
改正表构造
- ALTER mytable ADD INDEX [indexName] ON (username(length))
成立表的时刻直接指定
- CREATE TABLE mytable( ID INT NOT NULL,
username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
删除索引的语法:
- DROP INDEX [indexName] ON mytable;
(2)MySQL索引范例:唯一索引
它与前面的普通索引近似,差别的就是:索引列的值必须唯一,但答应有空值.假如是组合索引,则列值的组合必须唯一.它有以下几种成立方法:
成立索引
- CREATE UNIQUE INDEX indexName ON mytable(username(length))
改正表构造
- ALTER mytable ADD UNIQUE [indexName] ON (username(length))
成立表的时刻直接指定
- CREATE TABLE mytable( ID INT NOT NULL,
username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
(3)MySQL索引范例:主键索引
它是一种特别的唯一索引,不答应有空值.普通是在建表的时刻同时成立主键索引:
- CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) );
当然也可以用 ALTER 号令.记着:一个表只能有一个主键.
(4)组合索引
为了形象地比较单列索引和组合索引,为表增添多个字段:
- CREATE TABLE mytable( ID INT NOT NULL, username
VARCHAR(16) NOT NULL, city VARCHAR(50) NOT NULL, age INT NOT NULL );
为了进一步榨取MySQL的效率,就要考虑成立组合索引.就是将 name, city, age建到一个索引里:
- ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);
建表时,usernname长度为 16,这里用 10.这是因为普通情形下名字的长度不会超越10,这样会加快索引查询速度,还会削减索引文件的大小,提高INSERT的更新速度.
假如辨别在 usernname,city,age上成立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率也会大不一样,远远低于我们的组合索引.固然此时有了三个索引,但MySQL只能用到此中的那个它认为仿佛是最有效率的单列索引.
成立这样的组合索引,其实是相当于辨别成立了下面三组组合索引:
- usernname,city,age usernname,city usernname
以上的相关内容就是对MySQL索引范例的部份内容的介绍,望你能有所收获.
以上是“MySQL索引范例大汇总[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |