数据库
文章平均质量分 69
SuNew_bee
这个作者很懒,什么都没留下…
展开
-
MySQL查询语句优化
嵌套查询优化 使用嵌套查询时,MySQL会生成临时表存储子查询的结果,外查询再从临时表读取数据,查询完毕后再删除临时表。 使用JOIN语句代替嵌套查询可以提升查询效率。 优化前:SELECT * FROM table1 WHERE field NOT IN (SELECT field FROM table2) 优化后:SELECT * FROM table1 t1 LEFT JOIN table2 t2 ON t1.t2_id = t2.id WHERE t2.filed IS NU.原创 2021-06-21 22:39:55 · 389 阅读 · 0 评论 -
MySQL事务日志
redo log 重做日志记录实事务操作引起的数据变化,记录数据页的物理修改。InnoDB更新数据时,先将更新记录写到重做日志中,等到系统空闲时再写到磁盘中。 buffer pool buffer pool是在内存中分配的一个区域,作为数据库的缓冲。读取数据时会先在缓冲池中查找,没有再去磁盘检索,写入时,先写入缓冲池,缓冲池里修改的数据会定期刷到磁盘。 redo log 的写入过程如下: binlog binlog记录数据库的修改逻辑,使数据库有归档能力,能进行数据恢复或备份。redo原创 2021-05-27 20:56:56 · 64 阅读 · 0 评论 -
数据库与缓存双写一致性
一致性 强一致性:系统写入的数据可以立即被读到,用户体验好,但是系统性能影响大。 弱一致性:不能保证什么时候能读到写入的值,只是尽可能在某段时间后能达到一致的状态。 最终一致性:系统保证在一定时间内能达到一致性状态。 经典缓存模式 Cache-Aside 读数据时,先查找缓存,如果缓存中有对应的数据直接返回,如果没有就到数据库查找然后更新到缓存中,再返回数据。 写数据时,先更新数据库,然后删除缓存。 Read-Throught/Write-Throught 这种模式下读写类似原创 2021-05-27 18:57:44 · 304 阅读 · 1 评论