mysql表行数限制?
我是新来的mysql &我编写了我的第一个php-mysql应用程序。mysql表行数限制?
我有30个设备列表,我希望用户将他们的首选设备添加到他的帐户。
所以,我创建MySQL表“A”,其中一些设备ID是被存储在特定的用户ID这样
UserID | Device Id
1 | 33
1 | 21
1 | 52
2 | 12
2 | 45
3 | 22
3 | 08
1 | 5
more.....
说,我有5000个用户ID & 30设备的IDS。
&如果每个用户的帐户记录下有15个设备ID(平均值)。
那么这将是表下5000×15 = 75000的记录“A”
所以,我的问题,有没有对我们有多少记录可以存储到MySQL表中的任何限制?
我上面提到的存储记录的方法是正确的?如果添加更多用户,是否会影响查询性能?
或者有更好的方法来做到这一点?
这是不太可能的,你会接近两列只有整数的MySQL表的限制。
如果你真的关心查询性能,你可以继续前进,并在两列上引发索引。即使使用设备ID索引,插入/更新表格的成本很可能可以忽略不计。如果你的数据库变得庞大,它可以加快诸如“哪些用户更喜欢这个设备”的查询。您询问“此用户更喜欢什么设备”的用户索引也会很快。
我只是想说这个表是一个简单的两列表和一个两部分组合键(索引)。这样,它将尽可能地原子化,并且不需要某些人可能会建议的“提高性能”的任何有趣的动作。
保持它的原子和正常的 - 你的表现会罚款,你不会超过你的DBMS
我没有看到任何错误。如果您期待节省一些服务器空间,那么请不要担心。让你的数据库完成潜在的工作。用ID - int(10) primary auto increment
正确索引数据库。在需要时考虑可伸缩性。你的第一个目标应该是完成你正在制作的应用程序。然后测试它。如果你发现它造成了任何滞后,问题,那么就开始担心解决问题的事情。不要打扰自己可能会遇到的问题。
但考虑到您的应用程序的规模(75k到1个lac记录),它不应该是一项任务。或者,也可以有这样的架构为用户
(device_table)
device_id
23
45
56
user_id | device_id
1 | 23,45,67,45,23
2 | 45,67,23,45
即存储device_ids在数组中,然后让特定用户的DEVICE_ID作为
$device_for_user=explode(',',$device_id)
凡课程device_id从MySQL数据库中检索。 所以你将有
$device_for_user[0]=23
$device_for_user[1]=45
amd等。
但是这种方法不是一个很好的设计或方法。但仅仅是为了您的信息,这是一种做法
-1,以便进行反规范化并防止db以其想要的方式工作。 – 2013-02-16 07:27:37
“千百万”的任何限制。如果您真的好奇,请阅读文档*(http://dev.mysql.com/doc/refman/5.0/en/limits.html)。 – 2013-02-16 07:00:14
RTLM:http://dev.mysql.com/doc/refman/5.6/en/table-size-limit.html – 2013-02-16 07:01:35
@YogeshSuthar:如果只有评论可以-1。愚蠢的想法。对这样的表进行非规范化并不是一个好主意。 – 2013-02-16 07:02:52