大表怎么优化?某个表有近千万数据,CRUD比较慢,如何优化?分库分表了是怎么做的?分表分库了有什么问题?有用到中间件么?他们的原理知道么?

bluesky1年前 ⋅ 734 阅读
一、大表优化

1. 索引优化:合理建立索引,优化查询效率。

2. 分区:将表按照规则分成不同的分区,可以大幅度提高查询效率。

3. 垂直分表:将一张表按照业务需求分拆成多个表。

4. 水平分表:将一张表按照数据的某个关键维度分拆成多个表。

5. 数据库参数优化:针对不同的业务场景,适当调整数据库的参数值。

二、分库分表的实现

1. 垂直分库:按照业务需求将同一个数据库中的数据,分拆到不同的库中。

2. 水平分库:按照数据的某个关键维度,将同一个数据库中的数据,分拆到不同的库中。

3. 垂直分表:将一张表按照业务需求分拆成多个表。

4. 水平分表:将一张表按照数据的某个关键维度分拆成多个表。

三、分库分表的问题

1. 数据一致性问题:跨库事务、数据复制等问题。

2. 跨库查询问题:查询性能下降、语法复杂、数据倾斜等问题。

3. 复杂度增加问题:不仅要关注数据库的读写性能,还要关注分库分表策略、数据迁移、节点扩展等问题。

四、中间件原理

1. 数据库中间件:通过对数据库的代理、路由、分片、负载均衡、缓存等技术,来实现高可用、高性能、易扩展的数据库访问。

2. 缓存中间件:通过将数据存储在内存中,加快读写速度、减轻后端压力,来提高系统响应速度、并发能力。

3. 消息队列中间件:通过解耦、异步化处理消息,来实现系统间的数据交互、业务解耦、性能提升等功能。

全部评论: 0

    相关推荐