栏目导航: 首页 > 网站运营 > 开发设计 > 内容

QQ群关系库查询解决方案(下)

www.hx99.net    时间: 2015-03-03    阅读: 次     整理: 华西安全网

  本文由习科论坛会员gcz1992供稿,给大家提供技术参考和学习,欠缺的地方希望大家指出,文章分上下两篇,上篇已于前几日发布,这是下篇。

一个报告写了这么长时间也算奇葩了,嗯,终于有空写文章了,拖到了现在,这期间我试用了MySQL ,Oracle和Nosql中的Couchbase,事实上都没有MSSQL来的干脆,因为数据的导入导出过程实在太慢了,慢到俺这渣机受不了。

不过在我的试用过程中,MySQL在小数据量的时候有很强大的优势,短小而精悍,用起来十分舒服,在全部导入的情况下,与MSSQL速度比起来虽然 会有些慢,但在建立好索引的情况下,也是可以使用的,没有索引就没有速度。索引就是一个数据查询的灵魂。
 

QQ群关系库MSSQL到Mysql 的 数据导入

我进行了从MSSQL到 Mysql 的数据转入测试。


(1)推荐使用工具MySQL Migration Toolkit,工具很容易上手,但在Source Database 处和set parameter时要指定数据连接类型, 即加上“charset=utf8”,网上有很多这样的资料大家可以直接百度。另外转换的时间会很长,大家可以用一个表来测试一下速度。

改换完成后效果图如下:

 1.jpg

(2)   第二种方法就是自己写一个转换工具,因为数据结构并不复杂。
将数据一条一条来读,然后插入就可以了,而且这种方法同样适用于Oracle等数据库,虽然它也会很慢。

我的导入就是自己写的只是数据太大了,以至于电脑会卡死,后来又写了事务加插入判断才算让它可以好好干活。

工具以及源码春节后我会放到习科论坛,大家可以关注一下。

 

QQ库数据结构整体优化

已知这个库中Group Data库是其中的关键,因为它保存了用户的昵称,年龄,性别等信息。结构如下:

 2.jpg

而这个结构事实上又是以QunNum 来进行的存储,以方便群内成员的查询。

 3.jpg

如果我们反其道而行呢?将数据结构进行改变,以QQNum 来进行结构存储,而后划分区段是不是就可以更好的优化查询速度呢?

其实就是对整个库进行一个以QQNum 的一个ASC排序 ,从10000开始一直到库内最大的QQ的一个排序。部分效果如下:

 4.jpg 

那么如何进行这个排序呢?

先建立新的数据库,以ASC顺序来建立表,然后对数据进行判断,划分存储表与存储位置,随后插入数据。这个也可以用存储过程来干,只不过同样是很漫长的一件事,而且对硬盘空间是一个大考验,当然服务器就很轻松了。

我只进行了很少部分的转换,就如上图,效果就是查本人的渣机会比神机还要快,虽然我的硬盘已经红到爆了。

完整存储过程我也会在年后放到习科论坛,大家多多关注。

本文来源:华西安全网[http://www.hx99.net]
发表评论】【告诉QQ好友】【错误报告】【加入收藏】【关闭