各位好,请教一个技术问题
一个在线词典系统,假设每个用户查询过的单词在1万以内,如果有1万-10万用户
考虑如果做一个user-word关联表,理论上条目会有1-10亿条以上,似乎查询效率不高。
因为各用户之间没有什么关联,如果为每个用户建立一个表,放弃使用不多的user-word表及其查询统计功能,但是性能是不是提高很多,这样设计如何?
建立1-10万个表可行吗?如果这个方法不好,还有其他办法吗?词库一个表
table word:
word char(50) primary key
pronounce char(50)
meaning text每个用户一个表,
用户1
table user00001:
user_id int primary key auto_increment
login_name char(20)
passwd char(50)
word char(50) //查询过的单词,假设10000条以内
count int //查询次数
...
...
...
用户9999
table user09999:
user_id int primary key auto_increment
login_name char(20)
passwd char(50)
word char(50) //查询过的单词,假设10000条以内
count int //查询次数
一个在线词典系统,假设每个用户查询过的单词在1万以内,如果有1万-10万用户
考虑如果做一个user-word关联表,理论上条目会有1-10亿条以上,似乎查询效率不高。
因为各用户之间没有什么关联,如果为每个用户建立一个表,放弃使用不多的user-word表及其查询统计功能,但是性能是不是提高很多,这样设计如何?
建立1-10万个表可行吗?如果这个方法不好,还有其他办法吗?词库一个表
table word:
word char(50) primary key
pronounce char(50)
meaning text每个用户一个表,
用户1
table user00001:
user_id int primary key auto_increment
login_name char(20)
passwd char(50)
word char(50) //查询过的单词,假设10000条以内
count int //查询次数
...
...
...
用户9999
table user09999:
user_id int primary key auto_increment
login_name char(20)
passwd char(50)
word char(50) //查询过的单词,假设10000条以内
count int //查询次数
user_id int primary key
word char(50) //查询过的单词,假设10000条以内
count int //查询次数
...大部分查询是基于某个user_id下的统计
select *
from user-words
where user_id = N
and count>5请有经验的朋友透露一下大概同等复杂度的亿条记录查询的速度,查询一次大概多少时间