通过对本章第一节至第三节的学习,相信各位读者已经对MySQL、PostgreSQL和SQLite都有了初步的认识。
我们可以看出,MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景;而相对于MySQL来说,PostgreSQL就可以身兼多职;相比于前两种数据库,SQLite适用于嵌入式应用或不需要拓展的应用。
PostgreSQL支持各种工具拓展,比如本书前面介绍的PostGIS就是其拓展之一。PostGIS使得用户可以用PostgreSQL来存储管理地理数据,很多时候需要大量代码才能实现的查询分析功能,使用PostGIS拓展,用户只需要一行SQL代码就能实现。
并且,在本章第二节的多个例子中我们可以发现,使用PostgreSQL可以管理NoSQL数据,只需调用它内部封装的API函数,就能够实现数据格式的转换和格式化。同时,PostgreSQL可以自己定义一些函数,对于后端开发来说十分友好。它支持使用任意的语言编写函数(如主流的Python、Java、JavaScript等)。
当然,PostgreSQL还有许多更加高级的功能,如它支持丰富的索引类型,包括Hash索引、Btree索引、Brin索引、Bloom索引等;而MySQL支持的索引就比较少了。PostgreSQL通过SSI能实现高性能的可序列化;支持WAL段复制、流复制,在V10中还新增了逻辑复制等功能;使用FDW拓展还可以去访问其他数据库(包括关系型数据库和NoSQL数据库),有了它,就可以像访问自己的数据库表一样,访问和查询其他数据库中的数据。MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作。MySQL现在在市场上的占有率很高,从这一点也可以看出,它适合于Web应用的场景。并且,作为一款开源数据库,和PostgreSQL一样,MySQL也在发展和成长。(www.xing528.com)
SQLite适用于嵌入式应用,如移动应用。并且,在很多情况下需要频繁直接读/写磁盘文件的应用,都很适合转化为使用SQLite。但是SQLite的吞吐量有限,因此对于多用户访问的应用来说,选择MySQL或者PostgreSQL或许是更好的选择。
对于开发者来说,在以后的生产开发中,可以根据项目需要,选择更为合适的数据库。
三者的相关对比可以用表3-1进行总结。
表3-1 三种数据库的对比
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。