[评测]低配环境下,PostgresQL和Mysql读写性能简单对比
原文链接:https://www.cnblogs.com/blog5277/p/10658426.html
原文作者:博客园--曲高终和寡
*******************如果你看到这一行,说明爬虫在本人还没有发布完成的时候就抓走了我的文章,导致内容不完整,请去上述的原文链接查看原文****************
由于最近经过朋友启发,又有了一个写个人项目的小想法,在这次个人项目中准备学习并使用一些之前自己没有掌握的新技术,其中,在项目准备的时候,准备爬一些数据做储备。
过去的项目,都对数据写入没有硬性要求,所以之前就是写了爬虫放那不管了,这次由于项目的需求,需要大量快速的爬取/复制/写入数据,我就发现我现在用的MysqL并不能满足我的需求,奇慢无比。经过对比评测,初步决定选用Postgresql替换掉MysqL。
一:前期调查
如果一个市场占有率小的数据库(根据谷歌趋势),口碑/媒体评测/个人评测都不如MysqL的话,那就不用考虑了。
经过调查,不管是百度、谷歌搜出来的绝大部分结果都是Postgresql强得多,也符合我自己的评测结果。
有一个关于Postgresql的负面新闻是,Uber从Postgresql转为MysqL,但是经过更多的调查发现,这并不完全是Postgresql的问题,比如如下文章:
http://www.sohu.com/a/108363951_465959
https://m.aliyun.com/yunqi/articles/79658
就解释了这个问题,我个人经过调研是更倾向于Postgresql的
二:准备工作
1.一台阿里云服务器,1核2G1M带宽I/O优化硬盘(应该是SSD)
2.MysqL 5.7,Postgresql 11(MysqL版本低是因为我看宝塔推荐MysqL 8.0需要有2G内存最好,可是我这辣鸡服务器总共内存才2G,所以不考虑8.0,更何况从最后的测试结果来看,我不相信换成8.0能弥补这个差距),全部采用安装时的默认配置,不做任何优化(因为我不会),这样也可以看数据库自身,最大众的情况下的调教能力(在找借口),两台都部署在上述那台服务器上
3.建表和字段:
字段 | MysqL格式 | Postgresql格式 |
id(uuid) | char(36) | char(36) |
gmt_create | datetime | timestamp without timezone |
gmt_modified | datetime | timestamp without timezone |
content | varchar(20) | text |
在id,gmt_create,content分别加了单索引
说明一下,Postgresql的text属性是可无限填数据的,MysqL用的的可变字符varchar(20),而不是longtext,应该已经算优待MysqL了吧
4.数据插入方法:
模拟真实脚本环境,采用springboot+spring-data-jpa 造假数据插入,jpa开启批量插入设置,并可控制batch大小,经过多次测试找出最适合数据库的batch size大小。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。