我有一个包含数百万行的日志表。我正在考虑将数据分成多个表(即LoginHistory,ExceptionHistroy,PaymentProcessingHistory等)。在使用包含许多行(而不是列)的大型表并创建多个表时使用的术语是什么?
我当前的日志表架构类似于:LogID,LogMessage,LogReason,LoggedBy,LoggedOn等。
我认为问题是我在一张桌子上放了太多东西?表格可能过于通用了吗?
由于
答案 0 :(得分:3)
它被称为数据分区。
答案 1 :(得分:3)
Sharding是de jour这个词。从链接:
水平分区是一种数据库设计原则,数据库表的行是分开保存的,而不是按列分割(对于规范化)。每个分区都构成分片的一部分,而分片又可以位于单独的数据库服务器或物理位置。
答案 2 :(得分:2)
我认为您应该关注横向分区。水平分区或多或少是分片的一个子集。
有关水平分区的更多详细信息,请参阅维基百科链接:
http://en.wikipedia.org/wiki/Partition_%28database%29
您没有提到您使用的数据库技术,但这里有一些技术链接可以帮助您分割数据:
IBM DB2 partitioning
MySQL partitioning
Oracle partitioning
SQL Server partitions
PostgreSQL partitioning
Sybase ASE 15.0 partitioning