1

当我注意到他们有奇怪的设计时,我被要求在 MySQL DB 上做一些 PHP 脚本来显示一些数据。他们希望执行一项研究,该研究需要为每个用户收集多达 2000 条记录,并且他们会自动为每个注册的用户创建一个新表。这是现阶段的一项试点研究,因此他们有大约 30 个表格,但他们应该有 3000 个用户进行真正的研究。

我想建议将所有这些都收集在一个表中,但由于在研究期间该数据库每分钟可能有大约 1500 次 INSERT,所以我想先在这里问这个问题。这会导致 MySQL 中的表锁吗?那么,是一张每分钟插入 1500 条、最大大小为 6,000,000 条记录的表,还是每分钟 30 条插入、最大大小为 2000 条记录的 3000 张表。我想建议第一个选项,但我想确保它不会引起任何问题。我读到 InnoDB 有行级锁。那么,与一个表选项相结合会有更好的性能吗?

4

1 回答 1

0

这是一个巨大的问题。根据我的经验,性能并不能仅通过表大小来准确衡量。它归结为设计。你有主键和索引吗?是否过度索引?话虽如此,我还发现几乎每次去 DB 一次都比几十次要快。单表(列)有多大?您要保存什么样的数据(大于 4000K?)。您可能需要创建一些原型来查看最适合您的。我最能推荐的是你仔细判断你正在收集的数据的大小并相应地分配,创建索引(但不要太多,不要过度索引),然后测试。

于 2012-09-13T15:24:55.643 回答