我正在开始一个有多个客户的项目。在数据库中,每个客户端可能有数十万行。
与其将所有客户端放在一个表中,不如拆分客户端以便每个客户端都有自己的表是否有意义?对我来说这是有道理的,因为每次查询客户时,您只会查找包含其数据的表。
最佳答案
一般来说,最好有一个数据库,所有数据都在共享表中。出于多种原因,这更好:
- 您只需维护和更新一个系统。
- 您可以执行跨客户端查询(“昨天有多少客户端修改了数据?”)
- 与大量小表相比,SQL 对于较大的表更为优化。
您有一些充分的理由希望将客户端数据拆分到不同的表、甚至不同的数据库或不同的服务器之间。这些考虑因素包括:
- 需要对数据进行物理分离的系统要求。
- 针对不同客户的不同发展路径。
- 难以实现安全要求(安全性在行级别更难实现)。
在这种情况下,我会选择不同的数据库,而不仅仅是单个数据库中的不同表。
按照 SQL 标准,每个客户端数十万行并不是很大,除非您开始拥有数千个客户端。
关于php - MySQL - 每个客户端一张表或所有客户端的一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808433/