NO1.索引是表中一列或多列的排序结构。
1.索引的优点:提高查询速度。有依赖关系的子表和父表。使用分组和排序进行的字段加上索引可以提高分组和排序时间。
2.索引的缺点:创建和维护索引需要耗费时间,耗费时间随着数量的增加而索引增加,每一个索引需要占一定的物理空间。
NO2.
1.普通索引,
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
4.单列索引: 普通索引,唯一性索引,全文索引
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
6.空间索引:使用SPATIAL参数可以设置
NO3.
1.尽量使用查询用的索引,删除没有用的索引
NO4.
创建索引是指在某个表的一列或者多列上建立一个索引,创建索引的方式在已经存在的表上创建索引,创建表的时候创建索引,ALTER_TABLE创建索引
1.创建表的时候创建(普通索引)
CREATE TABLE index1(
id INT,
NAME VARCHAR(20),
SEX BOOLEAN,
INDEX(id)
);
show create TABLE index1
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
CREATE TABLE index2(
id INT UNIQUE,
NAME VARCHAR(20),
UNIQUE INDEX index2_id(id ASC)
);
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
CREATE TABLE index3(
id INT ,
info VARCHAR(20),
FULLTEXT INDEX index_info(info)
)ENGINE=MyISAM;
//只有mySAM才能支持全文索引
4.
单列索引: 普通索引,唯一性索引,全文索引
CREATE TABLE index4(
id INT ,
subject VARCHAR(30),
INDEX index4_st(SUBJECT(10))
)
//单列索引遵循使用前缀的规则
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
CREATE TABLE index5(
id INT ,
name VARCHAR(20),
sex char(4),
INDEX index5_ns(name,sex)
)
6.空间索引:使用SPATIAL参数可以设置
CREATE TABLE index6(
id INT ,
space GEOMETRY NOT NULL,
SPATIAL INDEX index6_sp(space)
)ENGINE=MyISAM;
NO5.在已经存在的表上创建索引
CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX
ON表名(属性名[(长度)][ASC|DESC]);
-------------------------------------------------------;
-------------------------------------------------------;
//在已创建的表上查询
1.创建表的时候创建(普通索引)
CREATE INDEX index7_id ON example0(id);
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
CREATE UNIQUE INDEX index8_id ON index8(id)
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
CREATE TABLE index9(
id INT ,
info VARCHAR(20)
)ENGINE=MyISAM;
create fulltext index index_info9 on index9(info)
4.
单列索引: 普通索引,唯一性索引,全文索引
CREATE TABLE index10(
id INT ,
iaddress VARCHAR(20)
)
CREATE INDEX index10_addr ON index10(iaddress(4))
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
CREATE TABLE index11(
id INT ,
name VARCHAR(20),
address VARCHAR(50)
);
create INDEX index11_a on index11(name, address)
6.空间索引:使用SPATIAL参数可以设置
CREATE TABLE index12(
id INT ,
line GEOMETRY NOT NULL
)ENGINE=MyISAM;
CREATE SPATIAL INDEX index12_line on index12(line)
----------------------------------------;
----------------------------------------;
//修改索引
NO6.在已经存在的表上创建索引
ALTER TABLE 表名 ADD[UNIQUE|FULLTEXT|SPATIAL]INDEX
ON表名(属性名[(长度)][ASC|DESC]);
----------------------------------
修改普通索引
1.创建表的时候创建(普通索引)
alter table example0 ADD INDEX index12_name(name (20))
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
CREATE TABLE index14(
id INT ,
name VARCHAR(20)
);
ALTER table index14 ADD UNiQUE INDEX index_id(id);
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
CREATE TABLE index15(
id INT ,
info TEXT
)ENGINE=MyISAM;
ALTER TABLE index15 ADD fulltext INDEX index_info(info)
4.
单列索引: 普通索引,唯一性索引,全文索引
CREATE TABLE index16(
id INT ,
iaddress VARCHAR(20)
)
ALTER TABLE index16 ADD INDEX T16_addr(iaddress(4))
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
CREATE TABLE index17(
id INT ,
name VARCHAR(20),
address VARCHAR(50)
);
ALTER TABLE index17 ADD INDEX s_nam(name ,address)
6.空间索引:使用SPATIAL参数可以设置
CREATE TABLE index18(
id INT ,
line GEOMETRY NOT NULL
//索引建立在一个或者几个字段上,表中的数据按照索引的一定规则排列
//主键是表中数据的唯一标识,不同的记录的
)ENGINE=MyISAM;
ALTER TABLE index18 ADD SPATIAL INDEX index18_line(line);
//删除索引
drop index id on in;
1.索引的优点:提高查询速度。有依赖关系的子表和父表。使用分组和排序进行的字段加上索引可以提高分组和排序时间。
2.索引的缺点:创建和维护索引需要耗费时间,耗费时间随着数量的增加而索引增加,每一个索引需要占一定的物理空间。
NO2.
1.普通索引,
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
4.单列索引: 普通索引,唯一性索引,全文索引
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
6.空间索引:使用SPATIAL参数可以设置
NO3.
1.尽量使用查询用的索引,删除没有用的索引
NO4.
创建索引是指在某个表的一列或者多列上建立一个索引,创建索引的方式在已经存在的表上创建索引,创建表的时候创建索引,ALTER_TABLE创建索引
1.创建表的时候创建(普通索引)
CREATE TABLE index1(
id INT,
NAME VARCHAR(20),
SEX BOOLEAN,
INDEX(id)
);
show create TABLE index1
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
CREATE TABLE index2(
id INT UNIQUE,
NAME VARCHAR(20),
UNIQUE INDEX index2_id(id ASC)
);
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
CREATE TABLE index3(
id INT ,
info VARCHAR(20),
FULLTEXT INDEX index_info(info)
)ENGINE=MyISAM;
//只有mySAM才能支持全文索引
4.
单列索引: 普通索引,唯一性索引,全文索引
CREATE TABLE index4(
id INT ,
subject VARCHAR(30),
INDEX index4_st(SUBJECT(10))
)
//单列索引遵循使用前缀的规则
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
CREATE TABLE index5(
id INT ,
name VARCHAR(20),
sex char(4),
INDEX index5_ns(name,sex)
)
6.空间索引:使用SPATIAL参数可以设置
CREATE TABLE index6(
id INT ,
space GEOMETRY NOT NULL,
SPATIAL INDEX index6_sp(space)
)ENGINE=MyISAM;
NO5.在已经存在的表上创建索引
CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX
ON表名(属性名[(长度)][ASC|DESC]);
-------------------------------------------------------;
-------------------------------------------------------;
//在已创建的表上查询
1.创建表的时候创建(普通索引)
CREATE INDEX index7_id ON example0(id);
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
CREATE UNIQUE INDEX index8_id ON index8(id)
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
CREATE TABLE index9(
id INT ,
info VARCHAR(20)
)ENGINE=MyISAM;
create fulltext index index_info9 on index9(info)
4.
单列索引: 普通索引,唯一性索引,全文索引
CREATE TABLE index10(
id INT ,
iaddress VARCHAR(20)
)
CREATE INDEX index10_addr ON index10(iaddress(4))
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
CREATE TABLE index11(
id INT ,
name VARCHAR(20),
address VARCHAR(50)
);
create INDEX index11_a on index11(name, address)
6.空间索引:使用SPATIAL参数可以设置
CREATE TABLE index12(
id INT ,
line GEOMETRY NOT NULL
)ENGINE=MyISAM;
CREATE SPATIAL INDEX index12_line on index12(line)
----------------------------------------;
----------------------------------------;
//修改索引
NO6.在已经存在的表上创建索引
ALTER TABLE 表名 ADD[UNIQUE|FULLTEXT|SPATIAL]INDEX
ON表名(属性名[(长度)][ASC|DESC]);
----------------------------------
修改普通索引
1.创建表的时候创建(普通索引)
alter table example0 ADD INDEX index12_name(name (20))
2.唯一性索引(UNIQUE参数可以设置)主键是一个唯一性索引,
CREATE TABLE index14(
id INT ,
name VARCHAR(20)
);
ALTER table index14 ADD UNiQUE INDEX index_id(id);
3.全文索引(使用FULLTEXT参数)只能使用char,varchar,text字段上
CREATE TABLE index15(
id INT ,
info TEXT
)ENGINE=MyISAM;
ALTER TABLE index15 ADD fulltext INDEX index_info(info)
4.
单列索引: 普通索引,唯一性索引,全文索引
CREATE TABLE index16(
id INT ,
iaddress VARCHAR(20)
)
ALTER TABLE index16 ADD INDEX T16_addr(iaddress(4))
5.多列索引。索引在多个字段上创建索引,查询中使用了第一个字段时索引才会被引用
CREATE TABLE index17(
id INT ,
name VARCHAR(20),
address VARCHAR(50)
);
ALTER TABLE index17 ADD INDEX s_nam(name ,address)
6.空间索引:使用SPATIAL参数可以设置
CREATE TABLE index18(
id INT ,
line GEOMETRY NOT NULL
//索引建立在一个或者几个字段上,表中的数据按照索引的一定规则排列
//主键是表中数据的唯一标识,不同的记录的
)ENGINE=MyISAM;
ALTER TABLE index18 ADD SPATIAL INDEX index18_line(line);
//删除索引
drop index id on in;
小结:在mysql中会让我们选择Hash 还是tree,我们会发现Hash用=查询比较快,tree用like查询比较快