MyRecord
MyRecord copied to clipboard
数据库优化相关
虽然比较讨厌数据库相关的东西,但还是得学鸭~
缓慢更新,随缘更新。
我只是想记录下面两点:
- 读库水平拆,横向扩展
- 写库垂直拆,不同功能不同库
前置知识
暂时不做深度扩展,目前只为达到知其意。
水平拆分
水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放,它们的表结构是一致的。
拓展、拆分细则:https://www.kancloud.cn/thinkphp/mysql-design-optimalize/39326
垂直拆分
垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表。
通常我们按以下原则进行垂直拆分:
- 把不常用的字段单独放在一张表;
- 把 text,blob 等大字段拆分出来放在附表中;
- 经常组合查询的列放在一张表中;
垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用 jion 关键起来即可;