数据库
文章平均质量分 91
simuLeo
在软件中艰难探索的咸鱼
展开
-
日志系统:一条SQL更新语句是如何执行的
日志系统:一条SQL更新语句是如何执行的更新流程 更新流程涉及两个重要的日志模块: redo log(重做日志)和binlog(归档日志)。重要的日志模块:redo log不知道你还记不记得《孔乙己》这篇文章,酒店掌柜有一个粉板,专门用来记录客人的赊账记录。如果赊账的人不多,那么他可以把顾客名和账目写在板上。但如果赊账的人多了,粉板总会有记不下的时候,这个时候掌柜一定还有一个专门记录...原创 2020-02-26 11:41:55 · 284 阅读 · 0 评论 -
MYSQL count(*)这么慢,我该怎么办?极客时间MYSQL笔记
个人笔记总结COUNT(*)实现方式MyISAM引擎把表的总行数存在磁盘上;InnoDB引擎从表中一行行读出来,然后累计计数;上述结论基于不加where过滤条件,加了where,MyISAM也没办法返回的那么快;为什么InnoDB不跟MyISAM一样,也把数字存起来呢?因为MVCC(并发版本控制),不同的会话查同一个表的总行数,要保证可重复读隔离级别的总行数数据正确性,只能一行行...原创 2020-02-26 11:01:16 · 722 阅读 · 0 评论 -
Mysql锁
Mysql锁总结:根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁一、全局锁:对整个数据库实例加锁。MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL)这个命令可以使整个库处于只读状态。使用该命令之后,数据更新语句、数据定义语句和更新类事务的提交语句等操作都会被阻塞。使用场景:全库逻辑备份。风险:如果在主库备份,在...原创 2020-02-21 13:42:30 · 122 阅读 · 0 评论 -
MYSQL乐观锁
MYSQL乐观锁实现对于按钮等控件,点击后使其立刻失效,不让用户重复点击,避免对同时对同一条记录操作。使用乐观锁进行控制。乐观锁大多是基于数据版本(Version)记录机制实现。即为数据增加一个版本标识,在基于数据库表的版本解决 方案中,一般是通过为数据库表增加一个“version”字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据 的版本数据与数据库...原创 2020-02-21 10:24:37 · 269 阅读 · 0 评论 -
MYSQL事务隔离个人笔记-极客时间MYSQL四十五讲
Mysql事务隔离笔记事务隔离实例分析Q: 事务B执行过程中,事务A查询得到的V1,V2和V3的返回值分别是多少?A:1. 具体什么值要根据事务隔离级别来分析;2. 事务隔离级别分为:读未提交,读提交,可重复读,串行化;3. 如果是读未提交级别,不管是事务A还是事务B,都是**当前读**,那么事务A读到的V1,V2和V3的值都是2;4. 如果是读提交级别(事务B提交之后,事务A才能...原创 2020-02-20 20:04:50 · 498 阅读 · 0 评论 -
MYSQL优化技巧-个人总结
MYSQL优化技巧SQL语句慢查询优化思路SQL语句查询慢原因:一种是访问高峰期,查询请求非常多,导致mysql服务器压力很大,导致本来不慢的查询变慢(排队等待SQL执行);MYSQL缓存失效,MYSQL如果对某个表设置了缓存,但是该表频繁更新(shf_goods),那么就会导致缓存失效:MySQL缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的SQL,服务器...原创 2020-02-20 19:49:35 · 360 阅读 · 0 评论 -
[redis数据库问题] 聊聊你对redis的理解
从Redis的特性来说:①redis数据库是一种非关系型数据库,数据以key-value的形式存储,②它是内存型数据库,数据保存在内存中,所以读写速度很快。③当然它也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,以保证数据的安全。④Redis不仅仅支持简单的key-value类型的数据,同时还提供l...原创 2018-04-27 14:57:45 · 1390 阅读 · 0 评论