MyRecord icon indicating copy to clipboard operation
MyRecord copied to clipboard

数据库优化相关

Open bfchengnuo opened this issue 6 years ago • 1 comments

虽然比较讨厌数据库相关的东西,但还是得学鸭~

缓慢更新,随缘更新。

我只是想记录下面两点:

  • 读库水平拆,横向扩展
  • 写库垂直拆,不同功能不同库

bfchengnuo avatar Nov 19 '18 02:11 bfchengnuo

前置知识

暂时不做深度扩展,目前只为达到知其意。

水平拆分

水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放,它们的表结构是一致的image

拓展、拆分细则:https://www.kancloud.cn/thinkphp/mysql-design-optimalize/39326

垂直拆分

垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表。 image

通常我们按以下原则进行垂直拆分:

  • 把不常用的字段单独放在一张表;
  • 把 text,blob 等大字段拆分出来放在附表中;
  • 经常组合查询的列放在一张表中;

垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用 jion 关键起来即可;

bfchengnuo avatar Nov 19 '18 03:11 bfchengnuo