sql - 不同的 SQL 供应商如何进行分区?

标签 sql database-partitioning

供应商在数据库中实现分区时采取了哪些不同的方法?

这是对 marc_s 评论的回复:Does partitioning in mysql create tables or merely virtual tables?

接受好书链接形式的答案:)

最佳答案

我只能谈论SQL Server:

每个分区内部都是一棵新的 B 树。查询处理器会产生拥有一个巨大表的错觉。它几乎没有考虑到表已分区的优化,因为分区本身对于优化器来说很大程度上透明:出现在 P 列上且在 (A, B) 上有聚集索引的分区表(性能方面) )作为具有集群键(P、A、B)的单个表。对于搜索和扫描来说都是如此。

将分区设置为新的内部表使得对整个分区进行批量操作变得简单:只需删除分区或创建一个新分区即可。如果架构完全相同,您甚至可以与不相关的表交换分区! (更改表交换分区)

将分区设置为 B 树会对维护产生影响:您可以将各个分区放置在不同的驱动器上,或者将它们设置为只读并将它们从备份中排除

关于sql - 不同的 SQL 供应商如何进行分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10035585/

相关文章:

mysql - 使用存储过程和事件调度程序在 mysql 中动态创建分区

c# - WCF是否缓存存储过程

mysql - Min, MAX SQL 查询优化

php - 复杂的sql连接查询

postgresql - 如何在 PostgresQL 10 中备份分区表

sql - 获取 PostgreSQL 数据库中的分区数

sql-server - 在 SQL Server 中查询最小值比查询所有行要长很多

php - MYSQL 查询无法正常工作

sql - 在 MySql 数据库中的两个日期之间搜索

带分区的 MYSQL 索引