存储引擎
实在是学浅才疏,只能大致写点,放篇大佬的,看详细的去吧 传送门 ,等我闲下来学会了再来补充
即一个表存储数据的方式,不同的存储引擎会提供不同的功能,性能等
可以用 engine 指定存储引擎,charset 指定字符的编码方式
例:create ( … ) engine = InooDB default charset = gbk;
查看表的存储引擎
show engines ( 查看当前 MySQL 支持哪些存储引擎 )
show create table 表名 ( 查看该表的基本数据,包括存储引擎 )
常用搜索引擎简单介绍
InnoDB存储引擎
优点 :支持事务,处理巨大数据量有着很强的性能
使用场景 : 用于并发发生频繁,对事务较为依赖的情况
( MySQL 默认的存储引擎 )
MyISAM存储引擎
优点: MyISAM 有较快的插入,查询速度,有三种存储格式( 静态表(默认),动态表,压缩表 ),可以选择 动态表 或 压缩表 来节省空间
缺点 :不支持 事务 和 外键
使用场景 : 用于数据量很大,且只是需要简单的查询,插入数据,不需要事务的情况
MEMORY存储引擎( 以前是HEAP存储引擎 )
优点 :其数据存储在内存中,不需要和磁盘交互,查询效率是最高的
缺点 :不安全,重启服务时数据丢失,内存数据表默认只有 16M
使用场景 : 用于数据小,需要大量查询的情况
视图
视图相当于一张虚拟表,本身不存储数据 ( 视图可嵌套 )
视图对象在数据库中以文件形式存在,在硬盘上,不会随重启消失
视图操作
创建视图 : create view 视图名 as select … ( 只能以 select 来创建视图 )
修改视图 : create or replace view 视图名 as select … ( 只能以 select 来创建视图 )
删除视图 : drop view 视图名 ; ( 或 drop view if exits 视图名 ,当该视图存在时删除 )
在面对视图进行增删改操作时,会影响到原表的数据 ( 删除视图时,不会影响 )
( 对视图对象进行操作和对表操作相同,把表名改成视图名即可 )
视图优点
- 可以隐藏部分字段,将可以被用户修改,可以被用户查看的字段拿出来
- 简化了用户的操作,不用考虑原表的影响
- 可以封装查询语句,例如当需要多次使用同一复杂的查询语句,可以用视图代替,利于维护