- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个增长太大(几亿行)的数据库表需要优化,但在我开始对它进行分区之前,我想我会询问一些建议。
用法如下:
0 。表包含大约 10 列,每列长度约为 20 字节。
INSERTS 以每秒数百次的速度执行。
SELECT 语句基于“a”列(其中 a='xxxx')每小时执行几次。
DELETE 语句基于 DATE 列执行。 (删除超过 1 年的日期)通常每天一次。
关键需求是加速INSERT和SELECT语句,并且能够保留1年前的历史数据,而无需在删除时锁定整个表。
我猜我必须有两个索引,一个用于“a”列,另一个用于日期字段。还是可以同时优化两者?
选择速度和删除速度之间是否存在必要的权衡?
分区是唯一的解决方案吗?对此类表进行分区的好的策略是什么?
我使用的是 PostgreSQL 8.4 数据库。
最佳答案
您是否查看过PostgreSQL partitioning,而不是将其保留在单个物理表中? ?从 8.1 版开始支持。
分区可以帮助您避免在快速 INSERT 与快速 DELETE 性能之间进行选择的问题。您始终可以按年/月对表进行分区,只需删除不再需要的分区即可。删除分区极快,插入小分区也极快。
来自手册:
Partitioning refers to splitting what is logically one large table into smaller physical pieces. Partitioning can provide several benefits:
- 某些方面的查询性能可以显着提高 各种查询。
- 更新性能也可以提高,因为 表的索引小于 整个数据集的索引将是。 当索引不再适合时 内存,读写操作 在索引上逐步采取更多 磁盘访问。
- 可以通过简单地删除其中一个来完成批量删除 分区,如果该要求是 规划到分区设计中。 DROP TABLE 比批量快得多 删除,更不用说随后的 VACUUM 开销。
- 可以将很少使用的数据迁移到更便宜、更慢的存储空间 媒体。
The benefits will normally be worthwhile only when a table would otherwise be very large. The exact point at which a table will benefit from partitioning depends on the application, although a rule of thumb is that the size of the table should exceed the physical memory of the database server.
Currently, PostgreSQL supports partitioning via table inheritance. Each partition must be created as a child table of a single parent table. The parent table itself is normally empty; it exists just to represent the entire data set. You should be familiar with inheritance (see Section 5.8) before attempting to implement partitioning.
关于postgresql - 最优数据库表优化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382089/
我正在尝试在r中编写代码,以便找到单变量正态分布的最大似然(而不是对数似然)值。我知道还有其他方法,但是我需要深入了解数值优化才能进行进一步的工作。当我调用'optim'函数时,它似乎根本不会进行迭代
最近我一直在用 php + mysql 做一个相当大的项目。现在我担心我的 mysql。我应该怎么做才能使我的 mysql 尽可能优化?把你知道的都说出来,我将非常感激。 第二个问题,我在每次加载页面
我不太了解 InitializeCriticalSectionAndSpinCount 的文档: http://msdn.microsoft.com/en-us/library/windows/des
我们公司有几种不同的获取潜在客户的方式,以及我们处理的几种类型的潜在客户。每种类型的潜在客户之间只有微小的差异,并且大部分信息与一种或多种其他潜在客户类型共享或相关。我和我的团队正在尝试使用 Solr
ϵ-贪婪策略 我知道 Q-learning 算法应该尝试在探索和利用之间取得平衡。由于我是该领域的初学者,因此我想实现一个简单版本的探索/利用行为。最佳 epsilon 值 我的实现使用 ϵ 贪婪策略
我是一名优秀的程序员,十分优秀!