大型数据库的最佳方法结构 table
Best approache structure for a large database table
假设我有一个应用程序,用户可以在其中上传包含产品的文件。特殊之处在于用户可以上传相同的产品,但有一些不同的东西,比如数量、描述、价格、供应商甚至类别,这让我说一个用户可以有很多产品,但一个产品只能有一个用户。问题是..如果我有 1000 个用户并且每个用户上传一个包含 100.000 个产品的列表,我的 table 产品将非常非常大,所以我认为性能会有一些问题。第一次我想为每个用户制作一个产品 table,比如 table_products_user_id,但我认为这不是好方法,所以我需要帮助。请提出更好的方法。
如果不同的用户与同一产品相关联,您不必多次存储每个产品。
如果产品都不同,设计简单:两个table有外键关系。
100000的1000倍是100000000,很大,但是PostgreSQL没问题。
如果您确保对大 table 的所有访问都是通过索引进行的,查询将会很快。
如果您需要顺序扫描,但您知道例如你总是为某个用户查询产品,按用户划分大 table 会有所帮助。
一个重要的考虑因素是您希望如何摆脱旧数据。将 table 分区可以使这变得方便。
假设我有一个应用程序,用户可以在其中上传包含产品的文件。特殊之处在于用户可以上传相同的产品,但有一些不同的东西,比如数量、描述、价格、供应商甚至类别,这让我说一个用户可以有很多产品,但一个产品只能有一个用户。问题是..如果我有 1000 个用户并且每个用户上传一个包含 100.000 个产品的列表,我的 table 产品将非常非常大,所以我认为性能会有一些问题。第一次我想为每个用户制作一个产品 table,比如 table_products_user_id,但我认为这不是好方法,所以我需要帮助。请提出更好的方法。
如果不同的用户与同一产品相关联,您不必多次存储每个产品。
如果产品都不同,设计简单:两个table有外键关系。
100000的1000倍是100000000,很大,但是PostgreSQL没问题。
如果您确保对大 table 的所有访问都是通过索引进行的,查询将会很快。
如果您需要顺序扫描,但您知道例如你总是为某个用户查询产品,按用户划分大 table 会有所帮助。
一个重要的考虑因素是您希望如何摆脱旧数据。将 table 分区可以使这变得方便。