求分表解决方案,按用户名来分表,高手们进来看看吧!!!!!!
admin 发表于 2010-04-24 | 来源:互联网 | 阅读:
我有一个用户表UserTable,主键是用户名UserName
其中用户名是可以包含英文字母,数字,中文,还有一些特殊符号,如"_","-","@"
由于可能用户数量会很庞大(可能会达到上千万甚至上亿)想对用户表按用户名UserName来进行分表。
请问我该怎么分表合适呢?
我有一个用户表UserTable,主键是用户名UserName
其中用户名是可以包含英文字母,数字,中文,还有一些特殊符号,如"_","-","@"
由于可能用户数量会很庞大(可能会达到上千万甚至上亿)想对用户表按用户名UserName来进行分表。
请问我该怎么分表合适呢?
评论功能因故关闭!
请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)
有什么要求数据量很大,分页获取数据,设置索引
我是新手。。BD
有什么要求数据量很大,分页获取数据,设置索引我指的是分表啊,按用户名来分表啊。用户在查询数据时,可以先根据他的用户名username来判断他是在哪个表里,然后再在相应的表中查询用户的数据。但是就不是不知道该怎么分表好,因为用户名可以包含英文,中文,数字,和一些特殊字符
用户名是字符串,这个按字母分表就太困难了,最好还是先转成数字数字,可以考虑按用户名字符串的hashcode分表UserName.GetHashCode() % 数字数字多大就看你想分成多少张表了,模10就是10张表,100就是100张表
可以一个月 生成一个表不你用户表主键字段 弄流水号 里头包含注册年月日
哇 那你就有上亿个表了。 最起码如果你真的想分表 那你找一个共性字段。 比如城市。LZ是不是被吓到了。。。如此夸张。你以为是腾讯啊。
用户名是字符串,这个按字母分表就太困难了,最好还是先转成数字数字,可以考虑按用户名字符串的hashcode分表UserName.GetHashCode() % 数字数字多大就看你想分成多少张表了,模10就是10张表,100就是100张表频繁的调用这个方法UserName.GetHashCode(),耗性能大吗?
用户名是字符串,这个按字母分表就太困难了,最好还是先转成数字数字,可以考虑按用户名字符串的hashcode分表UserName.GetHashCode() % 数字数字多大就看你想分成多少张表了,模10就是10张表,100就是100张表频繁的调用这个方法UserName.GetHashCode(),耗性能大吗?几个数字计算而已,尤其username本身不会很长,消耗非常小的
用户名是字符串,这个按字母分表就太困难了,最好还是先转成数字数字,可以考虑按用户名字符串的hashcode分表UserName.GetHashCode() % 数字数字多大就看你想分成多少张表了,模10就是10张表,100就是100张表频繁的调用这个方法UserName.GetHashCod……真的吗?那多谢了!那我就采用这种方式吧这种方式分布的概率应该是比较均匀的吧
用户的一些共性信息保存在一张表用户名分表就不是太适合
~~~~~~“`
用户的一些共性信息保存在一张表用户名分表就不是太适合不是很明白你的意思。。。
再顶一下看是否还有更好的解决方案
再顶一下看是否还有更好的解决方案
我有一个用户表UserTable,主键是用户名UserName其中用户名是可以包含英文字母,数字,中文,还有一些特殊符号,如"_","-","@"由于可能用户数量会很庞大(可能会达到上千万甚至上亿)想对用户表按用户名UserName来进行分表。请问我该怎么分表合适呢?————————–再多的用户,也不用去分表,最少我没见过有人这么做。 中国移动、南航这些国企的人算比较多了,但是系统里面的用户表不会去做什么分表的。考虑的查询性能,一般都是回去在表上建立适当的索引,至于索引怎么去建立,很依赖于你这个表上需要做哪些查询。
一句话——分表,没必要,不是解决问题的方法。应该用其它的正确方法去解决你要解决的问题。
我说的是一般情况吧,很特殊的情况另外说。。。