id myid friendid搞定。这是最好的设置办法,对服务器要求最低。
解决方案 »
- php 输出数据库读取值时候与CSS的冲突问题,求助各位高手~
- php socket请求发送数据到jsp服务器,jsp服务器保存数据到session中,再通过php转向到jsp,发现数据并不能从session中得到
- 在windows下如何安装和配置php开发环境呢?
- php如何用ftp方法上传文件?
- 一个奇怪的问题:为什么我的文本计数器自动清零?
- apache模拟多用户访问的问题
- 紧急求助!
- 求助:各位大虾,帮我看看这个流控制里的值为什么就不是“1”呢?
- 如何实现任意支持格式的图片的缩放? <<========>> 谁来帮我完成1个图片缩放函数?
- 如何才是正确的书写习惯?
- 关于php二次开发的疑问
- 表单
每個用戶一條記錄
id,nickanme, 等。2.QQ好友關係表
id, myid, friendid3.QQ黑名單表
id myid blackid4.信息表,這裡建議使用分表
按用戶id來分表,每2000個用戶一個信息表,例如 id=5000的用戶 分表應該是 5000/2000 再取整,即2,所以表應該是message_0002
id fromid, toid,message, addtime.
CREATE TABLE `qq_friends` (
`my_id` bigint(13) NOT NULL,
`friend_id` bigint(13) NOT NULL,
`is_black_id` tinyint(1) NOT NULL DEFAULT '0',
`add_date` TIMESTAMP(10) NOT NULL,
PRIMARY KEY (`my_id`,`friend_id`),
KEY `my_id` (`my_id`),
KEY `add_date` (`add_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;建议用InnoDB,行锁而不是表锁
放弃自增ID(你用它干什么?排列大小?)
PRIMARY KEY 设置本Q ID和朋友ID的组合
本Q ID和加入时间分别加上索引
is_black_id(是否黑名单,0,1来储存)
如1楼所说,由于是交叉记录,一万个QQ全部互为好友,则记录数也就一亿(实际肯定小于),但是数据库也会很惊人。所以要考虑分库或者数据库集群(每100万个号一个库,若干库一个服务器)