MySQL 索引浅析
原文链接:http://hi.baidu.com/171892549/blog/item/14818d0ac616ee34b1351dbd.html
在数据库表中,使用索引可以大大提高查询速度。
假如我们创建了一个 testIndex 表:
CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL);
我们随机向里面插入了 1000 条记录,其中有一条 i_testID vc_Name 555 erquan
在查找 vc_Name="erquan" 的记录 SELECT * from testIndex WHERE vc_Name='erquan'; 时,如果在vc_Name 上已经建立了索引,MySql 无须任何扫描,即准确可找到该记录!相反,MySql 会扫描所有记录,即要查询 1000。以索引将查询速度提高 100 倍。
一、索引分单列索引和组合索引
单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引:即一个索包含多个列。
二、介绍一下索引的类型
1、普通索引。
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
(1)创建索引:CREATE INDEX indexName ON tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须指定 length,下同。
(2)修改表结构:ALTER tableName ADD INDEX [indexName] ON (tableColumns(length))
(3)创建表的时候直接指定:CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ;
2、唯一索引。
它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
(1)创建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))
(2)修改表结构:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))
(3)创建表的时候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));
3、主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLE testIndex(i_testID INT NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY KEY(i_testID)); 当然也可以用 ALTER 命令。记住:一个表只能有一个主键。
4、全文索引
MySQL 从 3.23.23 版开始支持全文索引和全文检索。
删除索引的语法:DROP INDEX index_name ON tableName
三、单列索引和组合索引
为了形象地对比两者,再建一个表:
CREATE TABL
相关文档:
1.CREATE USER
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
CREATE USER用于创建新的MySQL账户。要使用CREATE USER,您必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。对于每个账户,CREATE USER会在没有权限的mysq ......
我使用的是apserv安装包,安装时语言我选择的是gb2312,后来在建立新的数据库时,‘整理’选择的是utf8,接下来在表中参数类型基本选择的都是utf8,接下来我就直接调用啦,嘎嘎,我写的是一个简单的留言本。最简单的读取数据库写入数据库的程序,嘎嘎!奇怪的是在数据库里面直接操作中文显示都很正常。可是一到网 ......
摘抄自:http://database.ctocio.com.cn/153/9232653.shtml
很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的。然而,也存在可用来改善数据装载操作效率的策略,其基本原理如下:
成批装载较单行装载更快,因为在装载每个记 ......
my.ini文件配置: [mysql] default-character-set=GBK #此处的编码是MySQL控制台显示的编码方式,应该设置为GBK [mysqld] default-character-set=utf8 #此处的编码是MySQL数据存储的格式,应该设置为utf8,可以存储世界上绝大多数字符 ......