首页 > 编程知识 正文

数据库属于中间件吗,oracle中间件有哪些

时间:2023-05-04 16:49:24 阅读:45102 作者:3843

问题1 :数据库中存储的数据量很少,但读写操作很大,并未超出数据库服务器的处理能力。

基于阿里巴巴云RD版测试结果(Mysql处理性能)

CPU内存连接数TPS QPS

4 16 4000 685 12337

8 16 4000 982 20879

8 32 8000 1308 23555

16 64 16000 2040 41530

光靠扩充机器是满足不了我们的要求的。 我该怎么办?

解决方案:添加常用方法——缓存(Redis )以减少数据库压力

派生问题:

1、缓存是过期,还是要求数据库进行大量读取和所有写入? 如果数据库不支持该怎么办?

:典型方法——读写分离(Mysql主从复制)由多个数据库提供读写服务

2、读写分离需要操作不同的库,对道层代码有影响吗? 怎么隔离这个变化?

:添加数据访问模块—— (数据库中间件),减少代码入侵

问题2:APP应用程序业务模块多、总数据量大,并发读写操作是否超出了单个数据库服务器的处理能力?

解决方案:数据量大,同时压力大,可以分库读写分离

1、面对领先压力,我们可以将多个从机集群化。

2、对于写入压力,多个主库之间的数据库同步,难以保持数据的完整性吗? 如果数据量很大,单一库存来不了怎么办?

:分库——怎么分库? 每个业务模块有多个数据库(用户库、商品库……) ) ) )。

派生问题:

1、谁负责多个数据库之间的负载平衡操作?

2、有可能操作多个库,对Dao层的代码有影响吗?

a、如何在库之间关联查询?

b、某业务数据库读写压力大,该怎么办?

:添加数据访问模块—— (数据库中间件),减少代码入侵

问题3 )如果一个表的数据量大,如电子商务网站的商品表、订单表等,超过一个表的在线?

解决方案:考虑超过1000万个分区表、分区表

派生问题:

1、怎么分?

:根据一定的规则将数据分成多个表存储时,可以有什么样的表划分规则?

2、分表的情况下,对刁层的代码有影响吗?

如何决定将数据存储在哪里?

要查询多个表?

如何使其对Dao层透明?

:添加数据访问模块—— (数据库中间件),减少代码入侵

总结:为什么要使用数据库中间件

高并发性,对于大量数据:

1、数据库中存储的数据量很少,但读写操作都很大,并没有超出数据库服务器的处理能力。

2.APP应用的业务模块多,总数据量大,同时读写操作超出了单个数据库服务器的处理能力。

3、电子商务网站、商品表、订单表等单表数据量大,超过单表存储在线的。

要解决数据存储、访问性能问题,需要数据库中间件。 这样可以在APP应用程序中快速应用读写隔离、库拆分和表拆分

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。