MySQL索引与视图
程序员文章站
2022-05-08 14:43:57
...
索引
一、索引的概念
索引索引是由表中的列构成,创建索引的目的是提高搜索速度,类似于字典的目录,方便于我们快速查询。
二、索引的优缺点
优点:速度快
缺点:创建时间长,硬盘空间占用大。
三、索引的分类
1.基本索引 :最基本的索引,没有限制。
2.唯一索引 : 除了值唯一,和基本索引没什么区别。
3.主键索引 : 特殊索引,一个表只能有一个主键,而且不能为空值。
4.组合索引 : 在多个列段上创建索引,只有在查询中使用了创建索引的第一个字段时,才会被使用。在使用时遵循最左缀集合。
5.全文索引 : 用于支持多列段的筛选,主要作用是提高查询较大字符串类型的速度。
全文索引跟前四种索引不同,前四种索引是为了提高性能,而全文索引是为了完成一些特殊需求。
四、创建索引语法:
create [unique | fulltext] index 索引名 on 表名 (字段名 [长度] 【asc | desc】)
创建全文索引语法:
alter table 表名 add fulltext 索引名(列1,列2)
select * from 表名 where match (列1,列2) againt (关键词)
五、修改索引语法:
alter table 表名 add 【unique | fulltext】index 索引名 (字段名 【长度】【asc | desc】)
六、删除索引语法:
drop index 索引名 on 表名
索引对性能的提升案例:
在如下一张日志表中一共有十三万行数据
可以看到我们要查询单独的一条数据的haul需要花0.409秒的时间。
而当我为moduleid列创建索引之后
时间只需要花0.035秒。可以看出,索引对于我们查询数据有很高的提升性能的作用。
数据库备份:
语法:
1.导出整个数据库结构和数据:
1.mysqldump -h localhost -uroot -p123456 database > dump.
2.mysqldump -h localhost -uroot -p123456 db_xiaoli > d:/t_log_001.sql
区别就在于上面的语句会在当前所在目录创建备份文件,下面的语句在指定目录下创建
2.导出单个数据表结果和数据到指定的文件中:
mysqldump -h localhost -uroot -p123456 database table > dump.sql
3.导出整个数据库结构(不包含数据):
mysqldump -h localhost -uroot -p123456 -d database > dump.sql
4.导出单个数据表结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database table > dump.sql
视图
作用:
视图就是虚拟表,和普通数据表一样。作用有预编译表链接,编码更加便捷。
创建:
creat view 视图名 as 查询语句
修改:
creat or replace view 原有视图
alter view 原有视图。
注意,具备以下特点的视图不允许更新:
1.包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
2.from一个不能更新的视图
3.where子句的子查询引用了from子句中的表
删除:
drop view 视图名
需要注意的是as后查询必须是表名,不能是视图名
存储过程
上一篇: mysql索引特点及索引优化方案
下一篇: MySQL索引与视图