索引--7

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;





小结:在mysql中会让我们选择Hash 还是tree,我们会发现Hash用=查询比较快,tree用like查询比较快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值