数据库
文章平均质量分 92
数据库学习的笔记及简单总结
止水2.0
这个作者很懒,什么都没留下…
展开
-
数据库进阶 视图 存储过程(函数)
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。...原创 2022-08-12 18:28:00 · 303 阅读 · 1 评论 -
数据库进阶 锁
全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已及更新操作的事务提交语句都将被阻塞。意向锁的设计作用:标志作用,为了避免DML在执行时,加的行锁与表锁的冲突,在InnoDB中引入了意向锁,使得表锁不用检查每行。数据是否加锁,使用意向锁来减少表锁的检查。不会阻塞其他客户端的读(DQL),但是会阻塞写(DDL,DML),自己可DQL操作,不能DDL,DML。InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的。...原创 2022-08-11 22:56:38 · 400 阅读 · 0 评论 -
数据库进阶 SQL优化
没有not null 约束 : InnoDB 引擎会遍历整张表把每一行的字段值都取出来,返回给服务层,服务层判断是否为null,不为null,计数累加。对于以上的两种排序方式,Using index的性能高,而Using filesort的性能低,我们在优化排序操作时,尽量要优化为 Using index。当主键乱序插入时,新增一行数据要插入时,可能不会正常新开一页插入,容易产生页分裂,此时,需要重新设置链表指针,比较耗费性能。服务层对于返回的每一行,放一个数字“1”进去,直接按行进行累加。...原创 2022-08-11 22:56:06 · 268 阅读 · 0 评论 -
数据库进阶 索引
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。假如我们要执行的SQL语句为 : select * from user where age = 45;无索引:就需要从第一行开始扫描,一直扫描到最后一行,我们称之为 全表扫描,性能很低。...原创 2022-08-11 22:51:46 · 733 阅读 · 0 评论