MySQL索引类型一览 让MySQL高效运行起来

来源:asp之家 时间:2010-04-22 16:52:00 

索引是快速搜索的关键。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)唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

◆创建索引

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)主键索引

它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) ); 当然也可以用 ALTER 命令。记住:一个表只能有一个主键。

标签:mysql,索引,效率
0
投稿

猜你喜欢

  • 几个你不知道的技巧助你写出更优雅的vue.js代码

    2024-05-13 09:14:39
  • sqlserver2005使用row_number() over分页的实现方法

    2024-01-18 20:01:02
  • 使用python的pandas库读取csv文件保存至mysql数据库

    2024-01-22 00:26:19
  • ASP中ServerVariables集合用法详解

    2007-09-14 10:26:00
  • 如何配置关联Python 解释器 Anaconda的教程(图解)

    2021-06-13 15:27:30
  • 基于python实现图片转字符画代码实例

    2023-05-17 01:53:37
  • 如何对Python编译PyInstaller打包生成的exe文件进行反编译生成pyc、py源代码文件

    2023-11-06 00:10:33
  • Python AI编程助手AICodeHelper使用示例

    2022-01-15 03:22:22
  • Python三十行代码实现简单人脸识别的示例代码

    2022-08-29 18:07:49
  • Access数据库安全问答

    2007-08-23 15:28:00
  • javascript实现无法关闭的弹框

    2024-05-08 09:32:13
  • Go channel结构体源码和读写和关闭过程详解

    2024-04-26 17:31:08
  • php绘制圆形的方法

    2023-10-29 17:31:52
  • js实现限定范围拖拽的示例

    2024-04-29 13:38:55
  • mysql sock 文件解析及作用讲解

    2024-01-26 13:15:47
  • Python入门篇之条件、循环

    2021-09-16 16:10:00
  • 如何实现文件上传并自动归类功能?

    2010-05-24 18:37:00
  • 使用Python实现画一个中国地图

    2023-10-01 00:39:36
  • vue.js编译时给生成的文件增加版本号

    2024-05-10 14:18:15
  • MySQL表字段设置默认值(图文教程及注意细节)

    2024-01-18 14:34:52
  • asp之家 网络编程 m.aspxhome.com