【MYSQL百炼成圣】肉身成圣篇——视图和索引
2023-09-27 14:27:33 时间
🔎这里是MYSQL成圣之路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
数据库版本:mysql8。0.27
如果以下代码执行有问题欢迎留言,一起探讨
视图 View
什么是视图?
- 视图是一个虚拟表,是sql语句的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insertupdate delete ] ; 创建视图需要create view 权限,并且对于查询涉及的列有select权限;使用create or replace 或者 alter修改视图,那么还需要改视图的drop权限。
代码实现:
学生成绩表
建立视图
-- v_a是视图名
create view v_a as
select id,name,score,dept from s1;
查询视图
-- 查询视图v_a
select*FROM v_a;
-- 查询视图时可以增加条件
select*FROM v_a where id=4;
-- 查询数据库中的全部视图
select `TABLE_NAME` from `INFORMATION_SCHEMA`.`TABLES` where `TABLE_SCHEMA` = 'test' and `TABLE_TYPE` = 'view';
删除视图
drop view v_a
索引 index
- MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
- 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
- 拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。
- 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
- 创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条 件)。
- 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
- 上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
- 建立索引会占用磁盘空间的索引文件。
建立索引
创建表时建立
-- 第一种方式
create table t1 (
t varchar(20),
KEY(t desc)
)
-- 第二种方式
create table t1 (
t varchar(20),
index aa(t(20))
)
修改表时建立索引
-- 该语句添加一个主键,这意 味着索引值必须是唯一的,且不能为NULL。
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list);
-- 这条语句创建索引的 值必须是唯一的(除了NULL外,NULL可能会出现多次)。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list);
-- 添加普通索引,索引 值可出现多次。
ALTER TABLE tbl_name ADD INDEX index_name (column_list);
-- 该语句指定了索引 为 FULLTEXT ,用于全文索引。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list);
删除索引
drop index t on t;
相关文章
- 解决 The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working
- 关于mysql存储过程创建动态表名及參数处理
- 《MySQL DBA修炼之道》——3.5 索引
- MySQL JDBC的setFetchSize
- 【MySQL进阶-02】mysql的explain执行计划以及索引优化
- MySQL not exists 真的不走索引么
- ElasticSearch索引 和MySQL索引那个更高效实用那个更合适
- 【常用SQL】MySQL查询重复的数据
- Windows安装Mysql(图文解说详细版,无msi版本)
- MySQL存储引擎
- mysql 索引策略
- MySQL存储过程的创建及调用
- 《PHP、MySQL和Apache入门经典(第5版)》一第1章 安装QuickStart向导1.1 使用第三方的安装包
- 《MySQL排错指南》——1.9 许可问题
- MySQL索引分析以及相关面试题
- mysql创建索引,mysql索引优化,mysql索引创建删除
- mysql的索引
- mysql高级之索引
- mysql 索引类型都有哪些
- mysql 数据库复制表 create table city1 like city;
- MySQL数据库远程连接开启方法
- PHP+MYSQL的搭建
- mysql内存,mysql oom
- 【MySQL】选错索引的原因分析
- mysql:1130 is not allowed to connect to this MariaDB server解决办法
- MySQL 面试题(一):索引失效的几种情况
- 高性能 MySQL(七):11个高性能的索引策略
- MySQL - 索引优化