0

我想要一些关于如何设计一个每天插入 10 到 5000 万个并且需要快速响应选择的表的建议……我应该使用索引吗?或者间接费用会太大?

编辑:我不担心交易量......这实际上是一个分配......我需要找出一个表的设计“必须很好地响应不基于主键的选择,知道这个表每天都会收到大量的插件”

4

3 回答 3

1

即使您每天执行 50,000 次并且您的工作日是 8 小时,那平均每秒仍然少于两次插入。我想你可能会得到比这高得多的峰值,但总的来说,SQL Server 可以处理比你看起来更高的事务率。

如果您的表相当宽(很多列或一些非常长的列),那么您可能需要考虑通过代理 (IDENTITY) 列进行聚类。您的数量不足以在表格末尾形成一个糟糕的热点。结合这一点,为数据一致性(即 FK)和检索(PK、自然键等)所需的任何键使用索引。小心设置索引的填充因子,并考虑在定期停机窗口期间重建它们。

如果您的表相当窄,那么您可能会考虑在自然键上进行聚类,但您必须确保可以满足您的响应时间预期。

于 2012-07-03T11:14:30.540 回答
1

最佳速率是 PK 排序与插入顺序相同,没有其他索引。一天10-5万也不算多。如果只插入,那么我看不到脏读有任何不利之处。

如果您正在优化选择,则对插入使用行级锁定。

测量索引碎片。使用适当的填充因子定期对索引进行碎片整理。填充因子决定了索引碎片的速度以及碎片整理的频率。

于 2012-07-03T01:00:38.643 回答
1

确实。至少是主键、外键,然后是您需要报告的任何内容,但不要过度使用。每天插入 10k-50k 不是问题。如果它就像,我不知道,一百万次插入,那么您可以开始考虑拥有单独的表、数据字典等等,但对于您的需求,我不会担心。

于 2012-07-02T20:36:59.997 回答