7月末,优步公司宣布将数据库从postgres切换到mysql,个中原因又是什么呢?
在一百年前,人类的第一台计算机还没能诞生,黑纸白字是人们记录信息的唯一方式,档案馆是信息的集结地,数据分析还只能通过人工的分类,检索来完成。1951年univac系统使用磁带和穿孔卡片作为数据存储,成为人类向大数据迈进的里程碑。
从文件系统发展到数据库系统,人们对于数据信息处理能力越来越强,出现了以做数据库发家的甲骨文公司(即ioe中的o:oracle),也有很多种免费、开源的数据库供我们使用。在现实生活中,包括facebook、优步等企业都选择了开源、免费的数据库。其中,mysql与postgres已经成为最受欢迎的两种免费数据库,他们之间有有什么异同呢?7月末,优步公司宣布将数据库从postgres切换到mysql,个中原因又是什么呢?
根据优步官方解释,此次更换数据库的原因是postgres数据复制效率低下,postgres更新已有行的效率低于mysql,postgres需要重写每一个行索引,而mysql只更新改变的索引。也就是说,此次更换的原因并非孰优孰劣,mysql与postgres各有自己的特点。
postgresql
索引:postgresql取决于存储引擎。myisam:btree,innodb:btree。同时pg可以使用函数和条件索引。相比之下,mysql支持b-树、哈希、r-树和gist索引。在索引的复制能力方面mysql更优,这也成为优步更换数据库的重要原因。
一致性:数据的一致性是衡量一个数据库优劣的重点,postgresql是完全支持acid特性的,它对于数据库访问提供了强大的安全性 保证,充分利用了企业安全工具,如kerberos与openssl等。在mysql中,开发人员可以将服务器设定为严格sql模式才能达到目的,否则可能会产生不规范数据。
稳定性:postgresql的稳定性极强,innodb等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多mysql用户都遇到过server级的数据库丢失的场景——mysql系统库是myisam的,相比之下,pg数据库这方面要好一些。当然,对于mysql而言,不同的版本稳定性也不尽相同,mysql官方网站会提供稳定版本下载,开发环境使用的mysql版本应该和生产中的大版本一致,用户可选择最新的稳定版本。
mysql
应该说这两种数据库都是开源、免费并能运行在多个操作系统上的,无论是可扩展性、数据的一致性和可靠性都比较稳定。但二者在应用环境、场景和部分特性上不尽相同。二者没有完全意义上的好坏,从整个发展过程来讲,最初postgresql的发展速度较慢,导致mysql一度成为霸主,如今,双方各有优劣,都成为不同应用场景下的最优数据库。
自从mysql被收购后,虽然仍保持开源的姿态,但实际上都有专业的工程师在码代码,发展也十分迅速,并出现了standard、enterprise、classic、cluster、embedded与community等多个版本,twitter、facebook与wikipedia都是mysql的忠实用户。postgresql则一直标榜自己为最先进的开源数据库,同时它又比mysql出现的早了九年,让它在教育和部分国外企业中备受欢迎,同时其数据一致性与完整性也是postgresql的高优先级特性。
总的来说,mysql更为灵活,postgresql更为可靠,用户在选择时一定要慎重,毕竟切换数据库是一件费力且不讨好的事情。
腾盾携高性能无人机亮相珠海航展
单片机控制LED轮廓显示原理及总体方案设计
简易远距离无线调频传声器
倍速链装配线使用注意事项
区块链技术的八个应用性能介绍
MySQL与Postgres两大免费数据库大不同
晶振不起振的10大原因
低压运算放大器通过自举以实现高压信号的应用
小鹏汽车计划自研电池,前宝马电池人才加盟负责
AR和VR哪一个会更好用
蓝牙和Wi-Fi的比较与区别分析
商汤科技展示了其面向于乘用车的自动驾驶技术 并取得了阶段性的成果
美国研发GPS替代无线电导航系统
pid三个参数分别起到什么作用
如何以云管边端+AI赋能智慧城市应用
比亚迪与佛山塑胶集团合资扩建锂离子电池隔膜项
如何解决教育机器人刚需问题,让教育机器人走的更长远呢?
解答真空断路器为什么过电压及防范措施
如何使用Python爬虫抓取手机APP的数据
针对车辆通讯协议一致性测试的电动汽车充电桩模拟器