RT,面试主考官告诉我,QQ现在的注册人数是5.5亿。他要我如何去设计这个数据库才能保证按QQ号码精确查询,以及按QQ的用户名称查询。按QQ号码查询的时候,我觉得就只须要对QQ号码的前几位进行分类,比如一个表里放多放六位,也就是100W的数据,查询的时候,对于提交过来的号码的前几位进行一个判断就可以转到相应的表。但是对于用户名称我是比较纳闷了。不知道怎么样才能查询出来。是不是要对我分类的每一个表都要进行查询?才能保证查询出用户名称????欢迎大家参与讨论哦!
解决方案 »
- Request.Browser.Type
- 求vs2008 下载地址
- 憧憬前途.还是迷惘、关于asp.net 的困惑?
- 简单问题10分钟结贴
- crystal10报表在web页面上无法显示报表的参数值?
- 还有两个小问题。请各位帮和忙。我的分实在是不够用了。以后补上
- 关于active directory编程,高手求助,小弟不行了
- Server.UrlEncode 把 1.0 变成了 1[1].0
- .net中,我在添加纪录时,如何用程序判断SQL语句中某一个字段超长
- 怎样调用一个存储过程!!并向存储过程出第一个参数!!!!C#!!!再现等待!!立马给分!!!
- 求助GridView控件和TreeView控件两个问题(解决了包括这个贴还有另外几个贴的一共120分一并相送)
- 求vs.net 2003下面split的方法
和面试你的说:你就不会花钱买硬件优化啊,让程序员去死磕,劳动力不值钱啊,你以为全世界有几个QQ样子的机构啊,优化个p
————————————————————————————————————————
我不知道怎么形容这个才算准确,我只能稍微严厉点说成这显得有点“无知”。1000W如果需要2秒,即使结构选择最差的B+树,55000W最多也就13秒就可以查到。什么叫做索引?索引的时间如果按照数据规模呈线性关系,那不就跟顺序查找完全一样了吗?!
结果花费我至少5秒的时间,可能我的机子比较差点,我想也不会差这么大。而且我现在要查询的是用户名称,而不是QQ号码。所以我想肯定时间会更长了。
或者你把不同位的QQ号分组.
谢谢你的参与讨论我想对于QQ号码的确是这样子
我前面也提到了,我想讨论的是用户名称。而非QQ号码.但是对于QQ的用户名称,它建立聚集索引,对于它能够起到的效果有多大呢因为用户名称在这里不是主键。它所支撑的由大到小,或者由小到大,是一个什么样的概念.而且如果在表中二个column,同时加上了索引,那数据又是一个什么样子呢楼上兄弟能不能继续讨论一下。谢谢
所以他们的口号是:硬件能使多快的使多快,能使的越多就的就越多。不求最快,但求最多。(他们的服务器群组那顶N家大公司的规模)