2021年3月15日

操作规范

摘要: 命名规范 库、表、字段全部采用小写; 临时库、表名必须以 tmp 为前缀,并以日期为后缀 备份库、表必须以 bak 为前缀,并以日期为后缀 非唯一索引必须按照“idx_字段名称”进行命名 唯一索引必须按照“uniq_字段名称”进行命名。 设计规范 所有表、字段都需要增加 comment 来描述此表、 阅读全文

posted @ 2021-03-15 21:11 hainingwyx 阅读(111) 评论(0) 推荐(0) 编辑

读写分离

摘要: 主从复制 异步复制 在主库开启 binlog 的情况下,如果主库有增删改的语句,会记录到 binlog 中,主库通过 IO 线程把 binlog 里面的内容传给从库的中继日志(relay log)中,主库给客户端返回 commit 成功(这里不会管从库是否已经收到了事务的 binlog),从库的 S 阅读全文

posted @ 2021-03-15 19:40 hainingwyx 阅读(54) 评论(0) 推荐(0) 编辑

2021年3月14日

MVCC

摘要: MVCC 多版本并发控制。MVCC 的实现,是通过保存数据在某个时间点的快照来实现的。 不管需要执行多长时间,每个事务看到的数据都是一致的。根据事务开始的时间不同,每个事务对同一张表,同一时刻看到的数据可能是不一样的。 MCCC 只在 RC 和 RR 两个隔离级别下工作。 Undo log undo 阅读全文

posted @ 2021-03-14 21:30 hainingwyx 阅读(101) 评论(0) 推荐(0) 编辑

事务

摘要: 事务 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。 ACID atomic 阅读全文

posted @ 2021-03-14 20:08 hainingwyx 阅读(70) 评论(0) 推荐(0) 编辑

摘要: 锁就是协调多个用户或者客户端并发访问某一资源的机制,保证数据并发访问时的一致性和有效性。 全局锁 MySQL 全局锁会关闭所有打开的表,并使用全局读锁锁定所有表。 FLUSH TABLES WITH READ LOCK; UNLOCK TABLES; 当执行 FTWRL 后,所有的表都变成只读状态, 阅读全文

posted @ 2021-03-14 19:08 hainingwyx 阅读(59) 评论(0) 推荐(0) 编辑

索引

摘要: 数据结构 B 树 B 树每个节点都包含 key 值和 data 值,因此如果 data 比较大时,每一页存储的 key 会比较少;当数据比较多时,有“要经历多层节点才能查询在叶子节点的数据”的问题。 B+ 树 所有叶子节点中包含了全部关键字的信息 各叶子节点用指针进行连接 非叶子节点上只存储 key 阅读全文

posted @ 2021-03-14 11:07 hainingwyx 阅读(57) 评论(0) 推荐(0) 编辑

2021年3月13日

count 优化

摘要: count说明 count(a) 和 count(*) 当 count() 统计某一列时,比如 count(a),a 表示列名,是不统计 null 的。 而 count(*) 无论是否包含空值,都会统计。 MyISAM 引擎和 InnoDB 引擎 count(*) 的区别 对于 MyISAM 引擎, 阅读全文

posted @ 2021-03-13 20:40 hainingwyx 阅读(192) 评论(0) 推荐(0) 编辑

Join优化

摘要: 关联查询 Nested-Loop Join 思想:一次一行循环:从驱动表中读取行并取到关联字段,根据关联字段在被驱动表取出满足条件的行,然后取两张表的结果合集。[manual][https://dev.mysql.com/doc/refman/5.7/en/nested-loop-joins.htm 阅读全文

posted @ 2021-03-13 18:26 hainingwyx 阅读(110) 评论(0) 推荐(0) 编辑

分页查询优化

摘要: 自增且连续主键的分页查询 避免前n条记录的读取[https://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html](mysql manual),可以采用: select * from t1 where id >99000 limit 2; 阅读全文

posted @ 2021-03-13 17:29 hainingwyx 阅读(72) 评论(0) 推荐(0) 编辑

order/group by优化

摘要: order by 原理 按照排序原理分[manual][https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html],MySQL 排序方式分两种: 通过有序索引直接返回有序数据:Using index 通过 Filesort 阅读全文

posted @ 2021-03-13 17:05 hainingwyx 阅读(120) 评论(0) 推荐(0) 编辑

导航