【数据库-mysql】索引、视图与触发器

第七章 索引、视图与触发器

7.1 索引

7.1.1 索引概述

索引的简历是为了加快查询速度。暴力查询的平均时间复杂度为O(N),一般使用树索引LOGn或者散列索引O(1)。索引之多一能加快查询速度,可以认为是对数据进行了重组。

有两种创建索引的方法:
1二叉树
2哈希:利用设计的散列函数将数据作为输入地址作为输出,查询的时候再次用散列函数拿到地址然后直接去改地址即可。
优点:
1加快了查询的速度
2 加快表之间的连接,在实现数据的参会完整性方面有意义
3 在order by group by字句中,减少分组排序的时间
缺点:降低了增删改的速度,索引文件有可能比数据文件还打。
情景:很多数据,15个字段,10个字段加了索引,现在需要换服务器,如何加快速度?
先把索引删除,然后导数据,最后重新加上索引。

7.1.2 索引分类

1、普通索引:仅仅是为了加快查询速度 KEY INDEX
2、唯一索引:行上的值不能重复UNIQUE
主键索引:主键必唯一,但是唯一索引不一定是主键,一张表上只能有一个主键,但是 可以有多个唯一索引。
3、全文索引 FULLTEXT
4、空间索引 SPATIAL
5、单列索引
6、多列索引

7.1.3 索引的设计原则

1索引并非越多越好,不过度索引
2 避免对经常更新的表建立索引
3 数据量小的时候不要建立索引
4过于集中的值不要添加索引,因为添加了也没有意义。例如100个用户,50个男50个女,为性别添加索引后,查询女,还是要面向50个用户。
5 对经常排序、分组和连接查询的字段创建索引。

7.1.4 创建索引

1 创建表的时候创建索引
2有两种方法在已经建过的表上创建索引
用 create index on
用alter table

ALTER TABLE 表名ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX [索引名](字段名);
ALTER TABLE 表名ADD PRIMARY KEY (字段名);  # 添加主键
在创建非普通索引的时候 index可以省略

3删除索引

ALTER TABLE 表名 DROP INDEX 索引名;
ALTER TABLE 表名 DROP PRIMARY KEY;

在查询语句前添加EXPLAIN可以查看是否使用了索引。

4全文索引与停用词

语法:mysql> select 列名1, match(全文索引)against("检索词") from 表名;
例子:mysql> select name, match(intro)against("Kni
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值