Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 59.7MB ·虚拟内存 1299.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
最近新增了资讯模块,改造了话题板块,其中预估数据量可能未来增长较大的,都考虑用上分表。分表不分库,主要是考虑并发量不大,单机服务器处理能力还绰绰有余,可以暂时不分库,但是有些业务随着时间推移可能数据量变得越来越大,比如日志表,评论表等,以后可能比其他的表,数据会以十几倍甚至更多的倍数与日增长,后面预估,在并发量不大的情况,单表查询都变得困难(服务器资源有限的情况),所以这个时候可以优先考虑分表。
AI 中文社当初选择了 PostgreSQL,是因为它是一个真正开源的,使用广泛,功能强大的关系型数据库,在开源界里,很多人都推崇 PG, 肯定有它的优势,我觉得商业关系型数据库中,广泛使用的无非就是 Oracle 和 SQL Server,而开源数据库中,自然就是 PostgreSQL 和 MySQL 了,说到功能方面,PostgreSQL 几乎可以和 Oracle 画上等号了,所以我一如既往的使用 PG。
回正题,我开发了新模块,还把历史模块改造了一下,其中使用到了 PG 的分区功能,发现不管是新开发和改造旧项目数据库结构,PG 分区使用上并不复杂,甚至可以说相当简单,只要是跨过了建表这个步骤之后,分区表在使用上几乎和单体表一模一样,没有任何的代码修改和使用方式的改变,这点非常 nice。一个项目如果涉及很多数据层代码,如果分区表和单体表,使用上有一丁点区别,那是要增加很多工作量的,幸好 PG 没有,除了建表不同之外,其他简直就是一致的。
如果表数据量,达到了10亿以上,PG 逻辑分区表和单体表,在相同的硬件环境下,性能会差多少呢?如果数据量在100万以内,他们又是怎么样的呢?有知道的朋友,可以评论区说说,分享一下真实经验,近期如果有空,本人真想造点数据,模拟测试一下,看看结果如何?