-
数据库的定义
数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。
-
数据库的三级模式结构
外模式:用户视图,描述用户能看到的数据。
模式:逻辑结构,描述数据的全局逻辑结构。
内模式:物理存储结构,描述数据在存储介质上的组织方式。
-
数据的独立性
物理独立性:数据的物理存储结构改变时,应用成成无需修改。
逻辑独立性:数据的逻辑结构改变时,应用程序无需修改。
-
SQL(Select Query Language)
DDL(Data Definition Language,数据定义语言):create、alter、drop
DML(Data Manipulation Language,数据操作语言):insert、delete、select、update、call、explain plan
DCL(Data Control Language,数据控制语言):grant、revoke
TCL(Transaction Control Language,事务控制语言):commit、rollback
-
连接方式
内连接:只返回两个表中匹配的行
左连接:返回左表所有行,右表匹配的行,右表不匹配的行值为NULL
右连接:返回右表所有行,坐标匹配的行,左表不匹配的行值为NULL
-
对于一个join连接查询,过滤条件的字段一般放在什么位置
- INNER JOIN 关联字段放在on后面;非关联字段放在on或者where后面都可以,通常放在where后面
- LEFT JOIN 左表字段 关联字段放在on后面;非关联字段看需求,如果最终结果左表要全部保留,就放在on后面,如果最终结果左表需要根据这个字段过滤,那么就放where后面
- LEFT JOIN 右表字段 关联字段放在on后面;非关联字段看需求,如果最终结果左表要全部保留,就放在on后面,如果最终结果左表需要根据这个字段过滤,那么就放where后面
-
索引的类型
普通索引、唯一索引、组合索引、全文索引
聚簇索引、非聚簇索引
-
索引会失效的情况
对索引列进行运算或函数操作
使用不等于进行查询
使用OR连接条件,且OR前后条件都有索引
存在数据类类型隐形转换
使用LIKE以通配符开头
-
sql优化常用手段
在频繁使用、区分度高的列上创建索引。
使用组合索引时,遵循最左前缀原则。
避免索引失效。
查询索引上的字段,避免回表。
对于连接查询,小表驱动大表(过滤后数据量少的标作为驱动表)。
select后只带上需要的字段。
-
事务及其特性
事务是数据库操作的最小逻辑单元,有ACID特性。
Atomicity 原子性:要么全部成功、要么全部失败。
Consistency 一致性:事务执行前后数据库状态保持一致。
Isolation 隔离性:多个事务并发执行互不干扰。
Durability 持久性:事务提交后对数据库的修改是永久的,会持久化到磁盘上保存。
-
事务的隔离级别
- 读未提交:可能产生脏读、不可重复读、幻读。一个事务还没提交时,他做的变更就能被别的事务看到。
- 读已提交:避免脏读,可能产生不可重复读、幻读。一个事务提交后,它做的变更才能被其他事务看到。
- 可重复读:避免脏读、不可重复读,可能产生幻读。一个事务执行过程中看到的数据,总是和这个事务在启动时看到的数据时一致的。
- 串行化:不能并发。
- 脏读、不可重复读、幻读
脏读:事务A读取了事务B未提交的数据。若事务B回滚,事务A读取的数据无效;
不可重复读:事务A多次读取同一行数据,结果因事务B的修改而不同;
幻读:事务A两次相同查询返回行数不同,因事务B插入了符合条件的新数据。
-
死锁
死锁的定义:两个或多个事务互相等待对放释放锁,形成循环等待。
避免方法:按相同顺序访问资源、设置超时时间、使用死锁检测机制。
-
InnoDB和MyISAM的区别
InnoDB:支持事务、外键、行锁,适合写操作多的场景。
MyISAM:不支持事务、外键、行锁,支持表锁,适合读操作多的场景。
数据库基础知识
无所事事的海绵宝宝2026-01-06 9:27
相关推荐
TDengine (老段)16 分钟前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark小白勇闯网安圈9 小时前
Django 响应对象、文件上传与类视图努力的小雨10 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全科技绘图10 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比ltl11 小时前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性ltl11 小时前
WAL 与崩溃恢复:ARIES 协议怎么跑通ltl11 小时前
TEE 数据库:EnclaveDB、Oblivious 原语与机密 SQL麻瓜code12 小时前
【Mysql】重新学一遍 SQL 执行顺序这个DBA有点耶12 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合安_14 小时前
RAG的向量数据库:为LLM提供语义搜索能力