索引可以提升查询速度,会影响where条件查询(where xxx=''),order by(order by
yyy)排序
索引是针对字段的,需要添加到字段上
索引在大量数据场景下效果明显
从索引的存储结构划分:B Tree索引、Hash索引、fulltext全文索引、R Tree索引(了解)
从应用层次划分:主键索引、唯一索引、普通索引、复合索引
从索引的键值(字段)类型划分:主键索引、辅助索引(二级索引)
从索引数据和内容数据逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索
引)
主键索引 (PRIMARY KEY)
一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。
添加主键的时候会自动创建主键索引,主键索引是一种唯一性索引
根据主键进行where条件查询,效率高
示例:
使用create语句创建: 在已有的表上创建索引
create unique index 索引名 on 表名(列名(长度))
create unique index index_dname on test_index(dname);
修改表结构添加索引
ALTER TABLE 表名 ADD UNIQUE 索引名( 列名 )
普通索引 (NORMAL INDEX)
普通索引的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件
(WHERE column=)或排序条件(ORDER BY column)中的数据列创建索引。
普通索引对数据没有唯一、非空的强制要求
1) 语法格式使用create index 语句创建: 在已有的表上创建索引
修改表结构添加索引
2.2.4 删除索引
由于索引会占用一定的磁盘空间,因此,为了避免影响数据库的性能,应该及时删除不再
使用的索引
1) 语法格式
2) 删除 test_index 表中名为 dname_indx 的普通索引。
2.3 索引的优缺点总结
索引的优点
1. 大大的提高查询速度
2. 可以显著的减少查询和排序的时间。
索引的缺点
当对表中的数据进行增加,修改,删除的时候,索引要同时进行维护,数据量越大维护时
间越长
第3节 MySQL 视图
3.1 什么是视图
1. 视图是一种虚拟表。
2. 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。
3. 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句.
4. 视图向用户提供基表数据的另一种表现形式
3.2 视图的作用
权限控制时可以使用
比如,某几个列可以运行用户查询,其他列不允许,可以开通视图 查询特定的列, 起到权限
控制的作用
简化复杂的多表查询
1) 语法格式
3.4 视图与表的区别
视图是建立在表的基础上,表存储数据库中的数据,而视图只是做一个数据的展示
通过视图不能改变表中数据(一般情况下视图中的数据都是表中的列 经过计算得到的结果,
不允许更新)
删除视图,表不受影响,而删除表,视图不再起作用