为mysql数据库中的每个新客户端创建PivotTables是错误的吗?对于每个表都是大量的数据,我认为如果每个客户端都有自己的表,那么我会更有组织,在本例中,每个新客户端的表是10。但在表演方面呢?那会影响到吗?对每个人来说,只有一张桌子会更有利吗?记住,如果只有一条,就会有很多行,例如,大约100万条。后来怎么样了?有人能告诉我这种情况下表现的真正区别吗?
根据提供商的说法,主机具有以下设置:
发布于 2018-02-28 15:22:42
如果您正在讨论的数据很大,那么当然,为每个客户设置一个不同的表将使您的查询速度更快,因为数据和索引都会更小。而且-假设您使用了innodb_file_per_table=1 -您将在操作方面具有其他优势,例如,如果一个表损坏,InnoDB将需要修复较小数量的数据。
另一种解决方案,可能更干净一些,是使用分区。您可以物理地将一个表划分为更多的文件,因此效果是相同的:您查询的数据和索引的部分将更小。您可以按客户身份进行分区。一些优点是:
缺点可能取决于您的特定用例。例如,我不知道,由于某种原因,您是否希望只为一组客户添加一列。
我脑海中唯一的“标准”缺点是,您无法将一些分区存储在不同的媒体上。但是,有理由不这样做(例如,备份可管理性)。
而且,MySQL从不并行查询-因此,在这方面,使用分区或使用单独的表没有区别。
发布于 2018-03-06 15:24:46
我不同意另一个答案。
数千个表导致数千个文件,不同用户访问不同文件的开销,用于内部开销的额外磁盘空间,等等。
一个表中的数百个PARTITIONs存在相同的问题。
在这两种情况下,性能在本质上并没有提高。选择表(或分区)的成本可与任何节省的费用相比较。要选择要使用的表,您的代码需要更加复杂;因此,您应该考虑让每个“用户”拥有一个DATABASE,即la WordPress。拥有数百个数据库的问题类似于拥有大量的表。
这个网站有很多类似的问题,比如“每台单张表更好,还是单张表更好?”答案是一张又一张响亮的桌子。我不再重复这里的论点了。
https://dba.stackexchange.com/questions/199022
复制相似问题