Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 4647|回复: 6

1千万条md5记录,试试各种数据库速度吧(不断更新)

[复制链接]

该用户从未签到

发表于 2014-6-22 11:18:28 | 显示全部楼层 |阅读模式
本帖最后由 cuibq 于 2014-7-10 15:12 编辑

这几天忙里偷闲,用lazarus弄个程序,生成了一千多万条字符串+对应的MD5数据。这只是数字+小写字母,最长5位密码可能的形式了。如果再加上大写,7位,记录数量为:

因为时间+资源的原因,无法弄太多了。
各种数据库都很好安装,我在win2008服务器上面弄了台虚拟机,近期如果有时间就测试一下各种数据库的查询速度。


各位亲,你们也来试试吧。。。。
工具都有了,raceweb,支持自动建表,自动导入,不用你写一行代码,随便用。。。。。。

md5数据生成:
17:24:44:  
1000000/12355928
17:25:24:  
2000000/12355928
17:26:03:  
3000000/12355928
17:26:23:  
4000000/12355928
17:26:37:  
5000000/12355928
17:26:51:  
6000000/12355928
17:27:05:  
7000000/12355928
17:27:19:  
8000000/12355928
17:27:32:  
9000000/12355928
17:27:47:  
10000000/12355928
17:28:00:  
11000000/12355928
17:28:14:  
12000000/12355928
17:28:20:  
12355928/12355928

1千万条数据,由于太大,分成多个文件。
raceweb,目前可以支持firebird、sqlite、mysql、sqlserver、oracle、 PostgreSQL 。
数据和程序相关下载地址:http://pan.baidu.com/share/home?uk=1326146701&view=share#category/type=0

6.22
使用postgresql建库并导入数据:
2014-6-22 10:46:32:
将建立表...
2014-6-22 10:46:34:
100
2014-6-22 11:26:43:
1000000
2014-6-22 11:26:43:
文本行数:1000001
数据列数:2

创建空表:MD5_5_1,描述:md5_5_1 成功。
向表:MD5_5_1 插入数据完成。
共插入1000000条数据。
共插入1000000条数据。

继续导入第二个文件:
2014-6-23 10:51:15:
100
2014-6-23 10:51:15:
200

。。。。。。

2014-6-23 10:58:38:
192300
2014-6-23 10:58:39:
192400
2014-6-23 10:58:39:
共插入192448条数据。

导入速度太慢,改程序。。。。。。

先试试少量数据导入:
pq:
创建空表:MD_1,描述:md_1 成功。
向表:MD_1 插入数据完成。
共插入100000条数据。
用时(毫秒):184766

mysql:
创建空表:MD_1,描述:md_1 成功。
向表:MD_1 插入数据完成。
共插入100000条数据。
用时(毫秒):173875

FB:
创建空表:MD_1,描述:md_1 成功。
向表:MD_1 插入数据完成。
共插入100000条数据。
用时(毫秒):494766

sqlite(在本机):
创建空表:MD_1,描述:md_1 成功。
向表:MD_1 插入数据完成。
共插入100000条数据。
用时(毫秒):12328

oracle 12:
创建空表:MD_1,描述:md_1 成功。
向表:MD_1 插入数据完成。
共插入100000条数据。
用时(毫秒):395844




还是太慢。。。






。。。。。。

















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-6-23 14:44:56 | 显示全部楼层
数据库测试这方面经验不足,请各位提提建议。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-9-29 18:17:51 | 显示全部楼层

RE: 1千万条md5记录,试试各种数据库速度吧(不断更新)

cuibq 发表于 2014-6-23 14:44
数据库测试这方面经验不足,请各位提提建议。

sqlite 最快吗???不可思议啊
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-10-4 18:22:40 | 显示全部楼层

RE: 1千万条md5记录,试试各种数据库速度吧(不断更新)

dbwolf 发表于 2018-9-29 18:17
sqlite 最快吗???不可思议啊

應該是因為sqlite是單機資料庫的關係吧,所有的操作都在記憶體內完成,不能拿來跟連網資料庫比較.....

真要比的話,應該是跟MS Access, ZMsql這類的單機資料庫比較才是
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2021-3-1 00:52
  • 签到天数: 78 天

    [LV.6]常住居民II

    发表于 2020-12-1 09:21:30 | 显示全部楼层

    RE: 1千万条md5记录,试试各种数据库速度吧(不断更新)

    如果是一条一条Insert,确实。。。
    但是各个数据库对于大数据量的批量写入,都有各自的优化,虽然用处不大,不过毕竟是一种手段。
    话说回来,批量写数据与批量导数据还是不太一样的,如果可以,应该测试批量的 if exists insert update,判断后写入或更新,个人感觉在跨系统之间导数据的时候,这样的应用场合还多一些。
    回复 支持 反对

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-5-2 01:15 , Processed in 0.075365 second(s), 12 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表