4.2.1 SQL语句、索引、视图、存储过程

怎么执行一条select语句

1.连接器 接收连接-》管理连接-》校验用户信息

2.查询缓存 kv存储,命中直接返回,否则继续执行 8.0已经删除

3.分析器 词法句法分析生成语法树

4.优化器 指定执行计划,选择查询成本最小的计划

5.执行器 根据执行计划,从存储引擎获取数据,并返回客户端

数据库设计三范式(目的:减少空间占用)

范式一:确保每列保持原子性:数据库表中的所有字段都是不可分解的原子值。

范式二:确保表中的每列都和主键相关,而不能只与主键的某一部分相关。

范式三:确保每列都和主键直接相关,而不是间接相关,减少数据冗余。

反范式(允许冗余存储,为了提升查询效率)

范式可以避免数据冗余,减少数据库的空间,减小维护数据完整性的麻烦;但是采用数据库范式化设计,可能导致数据库业务涉及的表变多,并且造成更多的联表查询,将导致整个系统的性能降低;因此基于性能考虑,可能需要进行反范式设计;

五大约束

not null非空约束

auto_increment自增约束

unique唯一约束

primary主键约束 非空、唯一

foreign外键约束

删除数据

drop 快 删除整张表结构和表数据,包括索引、约束、触发器等 不能进行回滚

truncate 较快 删除表数据,其他保留 不能回滚 以页为单位进行删除

delete 慢 删除部分或全部数据,其他保留 回滚 逐行删除

相关推荐
DarkAthena2 分钟前
【ORACLE】添加短信以外的双因素认证方式
oracle
梦幻通灵6 分钟前
Mysql处理锁冲突Lock conflict可用方案
数据库·mysql
小碗羊肉7 分钟前
【Redis | 第五篇】分布式锁
数据库·redis·分布式
Java爱好狂.8 分钟前
Redis高级笔记:深入浅出Java面试高频考点!
java·数据库·redis·后端·java面试·java程序员·java八股文
念恒123069 分钟前
MySQL事务(2)---事务隔离级别
数据库·mysql
rising start12 分钟前
深度解析 Redis 主从复制
数据库·redis·主从复制
Irene199117 分钟前
Oracle(字符集分为服务端和客户端) 和 Hive(依赖 MySQL(或 PostgreSQL)存储元数据)字符集编码格式查询,中文乱码处理
hive·sql·oracle
网管NO.118 分钟前
SQL 企业实战全流程|全覆盖前置基础 + 核心语法(MySQL8.0 可直接运行)
数据库·oracle
头歌实践平台20 分钟前
HBase 完全分布式安装(新)
数据库·分布式·hbase
大尚来也20 分钟前
主键、外键、索引,一篇讲透
java·数据库·oracle