索引,视图

一. 索引

1.1 索引概念
mysql官方对索引的定义:索引(index)是帮助Mysql高校获取数据的数据结构
数据库系统还维护满足特定查找算法的数据结构,这些数据结构一某种方式引用数据
在这里插入图片描述
左边是数据库表,最左边的是数据记录的物理地址,为了加快Col2的查找,可以维护一个右边的二叉找树每个节点分别包含索引键和值
一个指向对应数据记录物理地址的指针,就可以快速获取到相应数据。
索引是数据库中用来提高性能的最常用的工具。

1.2 索引的优劣势
优势:
提高数据检索的效率,降低数据库的I/O成本(输入/输出)
通过索引列对数据进行排序,降低数据排序的成本,降低cpu的消耗

劣势
索引是要占用空间的,就是 索引是一张表,表中存着主键啊索引字段啊·····等
虽然索引效率快,但 增加了数据更新的成本
更新是,mysql 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整更新带来的键值后的索引消息

重点:
如果设计索引,必须知道其优劣势
如果不知道其忧虑势的活创建索引,不但会引起IO成本的增加,更可能会造成数据库设计崩盘,数据操作反而变慢

1.3 索引类型
BTREE 索引:最常见的索引类型,大部分都支持B树索引
HASH 索引:只有Memory引擎支持,使用场景简单
R-tree 索引:使用少,不做介绍了
Full-text 索引:全文索引也是MyISAM的一个特殊索引类型,主要用于全文索引,InnoDB从
在这里插入图片描述

1.4 索引分类
单值索引:即一个索引值包含单个列,一个表可以有多个单列索引
唯一索引:索引列的值必须唯一,但允许用空值
复合索引:即一个索引包含多个列
主键索引:即表中主键列

1.5 索引语法

  1. 查看索引
    show index from 表名;

  2. 创建索引

    语法: create [unique,fulltext,spatial] index 索引名称 [using 索引类型] on 表名(字段名);
    示例: create unique index unique_name using btree on student(name);

  3. 删除索引
    语法: drop index 索引名称 on 表名;
    示例: drop index unique_name on student;

二.视图

视图(View)是一种虚拟存在的表。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,
并且是在使用视图时动态生成的。通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视
图的时候,主要的工作就落在创建这条SQL查询语句上。

视图相对于普通的表的优势主要包括以下几项。
简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

创建视图
create [ or replace ] view 视图名称 as 查询语句;
示例: create view view_test as select * from student where id = ‘4’;

查看视图
show tables;
desc 视图名称;

查看视图定义
show create view 视图名称;

修改视图
alter view 视图名称 as 查询语句;
alter view view_test as select * from student;

删除视图
drop view 视图名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值