我在MySQL中有一个包含almsot 300万条记录的表。
该表将朋友信息保存在用户系统中。所以它有很多用户甚至更多的朋友(每个用户最多有2000个(软))。我添加了一些额外的字段 name,url,dob,image,registered ,它们是varchar(255)和日期。
我的基本数据是2个int和1个varchar(6)。
使用PHPMyAdmin时,一切都变得很慢。我有一个关于用户ID和varchar(6)的索引,以及我如何查询用户的所有朋友(进展顺利)。但是,任何其他操作(或未来的操作)都不会很快。
我的选择:
所以问题;
编辑:澄清一点。
用户不是我的实际用户,但它们仍然是用户对象。所有朋友都是用户对象,但我可能已经拥有用户对象。因此,我使用好友中的额外数据在“用户”页面的列表中显示有关该数据的数据。
在理想世界中,事情不会花费这么长时间,在下一个最佳世界中,我只会在朋友中有2个字段user_id
和friend_id
。但是我不能依赖于将friend_id
链接到User对象,我可能没有它......
用户(包含更多字段,但为了简洁起见)
+-------+---------+-------+------------+
| shard | user_id | name | dob |
+-------+---------+-------+------------+
| nl | 1 | Bob | 2014-03-26 |
| nl | 2 | Erik | 2014-03-26 |
| de | 1 | Johan | 2014-02-01 |
+-------+---------+-------+------------+
朋友(包含更多字段,请参阅上述说明)
+-------+---------+-----------+--------+
| shard | user_id | friend_id | name |
+-------+---------+-----------+--------+
| nl | 1 | 2 | Erik |
| nl | 1 | 3 | Alice |
| de | 1 | 2 | Rasmus |
+-------+---------+-----------+--------+
nl-Bob是nl-Erik的朋友(是用户)
nl-Bob是nl-Alice的朋友(不用户)
de-Johan是de Rasmus的朋友(不用户)