
大型分布式存储架构
文章平均质量分 79
深入MySQL
关兮月
博客都是根据网上的一些教程写的,仅仅为了方便自己阅读。
展开
-
MySQL性能优化 二、表结构设计优化
每张表建议都有一个主键(主键索引),而且主键类型最好是int类型,建议自增主键(不考虑分布式系统情况下 雪花算法)为减少关联查询,创建合理的冗余字段(创建冗余字段还需要注意数据一致性问题)对于表中经常不被使用的字段或者存储数据比较多的字段,考虑折表。设计中间表,一般针对于统计分析功能,或者实时性不高的需求。对于字段太多的大表,考虑折表(比如一个表有100多个字段)原创 2024-07-07 23:26:13 · 317 阅读 · 0 评论 -
MySQL性能优化 一、系统配置优化
数据库优化纬度有四个:硬件升级、系统配置、表结构设计、SQL语句及索引。原创 2024-07-07 23:18:18 · 590 阅读 · 0 评论 -
MySQL存储与优化 三、MySQL事务和锁
每一个写事务,都会修改Buffer Pool,从而产生相应的Redo/Undo日志,在Buffer Pool中的页被刷到磁盘之前,这些日志信息都会先写入日志文件中,如果Buffer Pool中的脏页没有刷成功,此时数据库挂了,那在数据库再次启动之后,可以通过Redo 日志将其恢复出来,以保证脏页写的数据不会丢失。如果在事务中执行了一条没有索引条件的查询,引发全表扫描,把行级锁上升为全表记录锁定(等价于表级锁),多个这样的事务执行后,就很容易产生死锁和阻塞,最终应用系统会越来越慢,发生阻塞或死锁。原创 2024-07-07 22:42:41 · 891 阅读 · 0 评论 -
MySQL存储与优化 二、MySQL索引原理
全表扫描:explain分析type属性为all全索引扫描:explain分析type属性为index索引过滤性不好:靠索引字段选型、数据量和状态、表设计频繁的回表查询开销:尽量少用select*,使用覆盖索引。原创 2024-07-07 21:47:11 · 635 阅读 · 0 评论 -
MySQL存储与优化 一、MySQL架构原理
Undo:以为撤销或取消,以撤销操作为目的,返回指定某个状态的操作Undo Log:数据库事务开始之前,会将要修改的记录存放到Undo日志里,当事务回滚时或者数据库崩溃时,可以利用Undo日志,撤销未提交事务对数据库产生的影响Undo Log产生和销毁:Undo Log在事务开始前产生;事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放入到删除列表中,后面会通过后台线程purge thread进行回收处理。Undo Log属于逻辑日志,记录一个变化的过程。原创 2024-07-03 23:31:31 · 1199 阅读 · 0 评论