国内最专业的IT技术学习网

Mysql数据库

当前位置:主页 > Mysql数据库 >

银河网上开户:Oracle和MySQL的JDBC到底有多慢?

发布时间:2019/09/21标签:   Oracle      数据库      mysql    点击量:

原标题:银河网上开户:Oracle和MySQL的JDBC到底有多慢?

文本读取的代码和上面类似,读取时间测试为438秒。

Oracle发布全球最快的数据库机器Exadata X8M

组表 43秒

在关注性能且数据量较大时,千万不要把数据读出数据库计算!

Oracle 和 MySQL 的 JDBC 到底有多慢?

为了对比明显,这次换一个更大的表,用TPCH中的orders表,有3亿行数据,9个字段。

Java写起来麻烦,用SPL脚本执行测试:

Oracle 和 MySQL 的 JDBC 到底有多慢?

所有测试均在服务器本机上完成,没有消耗网络传输时间。

我们知道,文本解析是个非常麻烦的事情,但即使这样,从文本文件读取数据还是远远快于从数据库中读数。OracleMySQL的IO实在是太慢了!

需要说明的是,组表文件虽然采用列存格式,但在这里读出了所有列,并没有比文本少取任何内容,没有占列存的便宜。事实上,因为读所有列,使用列存还会吃点亏,如果采用SPL集文件(一种行存格式)还会更快。

SQL 语法基础——MySQL常用数字函数详解

测试结果是164秒,大概仅仅是文本读取的三分之一。

面试官问:MySQL的自增ID用完了,怎么办?

测试结果为:

7. 结论

数据库(Oracle和MySQL)的JDBC性能非常非常差!比文本文件还要差5倍以上。而采用二进制数据时,会比文本再提高3倍的读取性能。也就是说,合理格式的二进制文件会比数据库有15倍以上的优势。再考虑到并行因素,比数据库快出几十上百倍也是完全可能的。

编写如下SPL脚本执行测试:

Oracle 和 MySQL 的 JDBC 到底有多慢?

文本 119秒

版权信息Copyright © 银河官网 版权所有    ICP备案编号:鲁ICP备09013610号