好多上进的朋友都问如何快速查询20050144条数据,那就开个贴吧
嗯,总是到了这个时候,程序猿才有了点码农的存在感 =,=1.各位有标题说诉疑问的想必都下载好了压缩的数据库备份文件,当然MS SqlServer也安装好了。
求excel的看官们我爱莫能助,虽然从数据库导出excel很简单,但是料想你们拿过去也只是查三两个人,这么大数据拿过去也没必要。再说,我大致检索了下,里面数据也不全的,查不到也证明不了那啥。
2.嗯,开始吧。 打开数据库,展开表“cdsgus”,在“索引”上右击->“新建索引”->“非聚集索引”
3.在弹出的“新建索引”对话框中,索引名称会自动默认一个值,点击“添加”,弹出“选择列”对话框,在这里我们先选中“Name”字段,然后点击"确定",数据库就开始创建索引。
这里要说的是:选择哪个字段是有讲究的,如果你查询的时候,是想按照人名查询,那选择Name字段就可以了;如果你想按照身份证号查询,那选择“CtfId”字段即可。
当然你可以选择不同的字段以创建多个索引。但是要注意的是,你选择的字段决定了你查询时候的条件(尤其你选择了多个字段来创建一个索引)。图示如下:
4.创建完索引后可以在数据库的“索引”Folder下看见刚刚新建的索引
(由于数据量大,创建一个索引的时间可能有点长,看个人电脑性能了,不过相比不创建索引的情况下每次检索所消耗的时间,这点时间还是可以的)
5.然后就开始查询吧
例如:建立了一个Name的索引,则检索语句为:SELECT * FROM .. WHERE NAME='xxx'
建立了一个CtfId的索引,则检索语句为:SELECT * FROM .. WHERE CtfId='xxx'
当然,如果这两个索引都建立了,那这两条检索语句都是可行的。
在建立了索引的情况下,我的机器查询速度一般是顺秒内出结果(当然如果被查询的人名比较普遍,由于结果量大,记录显示出来还是需要点时间的),而不建立索引,最快也得16秒。
那有些聪明的青年要问了:如果这样查询出来的结果很多,比如查询个“张建国”(只是举个例子),就有1724条记录。MMP! 这么多劳资一个个找不是要坑死么。
我们可以继续加限制条件过滤,但是要注意的是,不能写成 SELECT * FROM .. WHERE NAME='张建国' and Birthday>'199101'
这样写数据库是不会使用索引进行查询的(除非你又建立了一个Name和Birthday两个字段联合的索引),可以写成这样
SELECT * FROM (SELECT * FROM .. WHERE NAME='张建国') AS A WHERE A.Birthday>'199101' 这样会调用索引查询,然后再过滤
从这个意义上讲,建立两个索引就够了,即就是示例的两个索引。
6.最后要说的是,这只是个数据库的小知识,我只是简单给各位上进的青年普及下数据库知识,绝无教唆的本意,请网警叔叔明鉴!
大家也不要@我查询啦,好奇害死猫,要是查不到还好,查到了多尴尬,我也不好意思告诉你的啦~~
不明觉吊 这个数据你查出来又有什么用?连哪年那月那天去哪和谁一起开房都查不到,有什么使用价值? 不明觉吊 用不着。 天亮打GG 发表于 2013-10-21 22:36 static/image/common/back.gif
这个数据你查出来又有什么用?连哪年那月那天去哪和谁一起开房都查不到,有什么使用价值?
兄台此言差矣,只要查出来,则必然说明是有开房记录(盗用身份证什么的借口信就信了,不信还是不信),都开房了,你还管跟谁开的?(当然也或许是同性朋友吧)
当然,本文的目的只是研究,嗯,数据库小知识,莫当真。。。 还好哥很多年前就对这手一直防备着了 我就觉得这是练习数据库的好材料,果然是真的! 还有调优!真是太nice了 楼主哪里有学习的素材下载啊? 昨天下载了那个什么软件安排提示是电脑硬件还是什么问题不能安排,心痛的放弃了
果断求excel版本 mark~~~
{:5_164:} hehe,哥用不上啊。 原创内容 大神威武霸气! 下载到服务器上搭了个 leveldb 各种查。。。 {:5_148:} ilovesc 发表于 2013-10-22 07:58 static/image/common/back.gif
楼主哪里有学习的素材下载啊?
这是数据库知识哇,大学教材里都有 -,- 斯文败类 发表于 2013-10-22 08:53 static/image/common/back.gif
果断求excel版本
excel的文件有1.85G,不能直接用excel打开。。。 [:103] 不明觉吊 专业就是王道
页:
[1]