数据库学习笔记

1.关系型数据库和非关系型数据库

关系型数据库使用关系模型、对数据读写更快速、支持复杂查询。

非关系型数据库基于键值来存储、支持图片和文字的存储,是nosql的,不需要sql层的解析。

2.添加索引的原因

对于唯一的字段可以添加唯一索引确保行唯一;可以优化查询;可以避免排序和临时表。

3.数据库的组成

服务器和存储引擎,服务器包括连接器、缓存、分析器、优化器、执行器,存储引擎存储具体的数据。

4.事务隔离级别

未提交读、提交读、可重复读、串行读

未提交读是指一个事务对数据的修改在数据未提交时就可以被其他事务发现。

提交读是对应的。

可重复读是指在一次事务中数据前后一致,其他事务的修改对事务的过程不可见。

串行读是指串行读写

5.并发控制的问题

脏读:读的过程数据被回退

幻读:读前后数据的增加和删除

不可重复读

丢失修改

6.innodb和mylsam存储引擎区别

inoodb支持事务,支持行锁,对于各种级别的事务隔离都支持。

7.存储引擎使用的索引

包括哈希索引和b树索引,b+树的数据都在叶子节点,而b树需要中序遍历才能得到数据。

8.添加了索引也不能保证一定使用索引的条件

比如未按照字段查询,或者对于组合索引没有按照最左前缀匹配查询

9.加快查询的方法

避免使用select*,使用更快的存储引擎,创建索引

10.视图和游标

视图是虚拟表是查询过程使用的,游标是在逐行处理中使用的。

相关推荐
想成为优秀工程师的爸爸5 小时前
第十九篇技术笔记:UDP——相思传得快,飞鸽传书在
笔记·网络协议·tcp/ip·udp·信息与通信
ss2736 小时前
食谱推荐系统功能测试如何写?
java·数据库·spring boot·功能测试
l1t6 小时前
DeepSeek总结的数据库外部表
数据库
m0_674294646 小时前
如何编写SQL存储过程性能对比_记录执行时间评估优化效果
jvm·数据库·python
014-code7 小时前
CompletableFuture 实战模板(超时、组合、异常链处理)
java·数据库
运气好好的7 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
それども8 小时前
DELETE 和 TRUNCATE TABLE区别
java·数据库·mysql
wenha8 小时前
数据库隔离级别
数据库·mysql·sqlserver·隔离级别
2401_871492858 小时前
Layui如何修改Layui默认的UI主题颜色(换肤功能实现)
jvm·数据库·python
Edward111111118 小时前
4.27mysql ,数据库,数据源
数据库·mysql