
为你的应用程序选择合适的数据库是很重要的,特别是对于直接与数据库对接的后台应用程序。有许多选择,每一种都适合于某些使用情况,并且有不同的价格、速度和扩展选项。
通常用于数据量大的应用,因为它有强大的数据处理库,所以你在Python应用中使用的数据库很重要。
本文将MariaDB与其他数据库技术如MySQL和PostgreSQL进行了比较,并讨论了为什么在使用Python时它是一个不错的选择。
由于其强大的数据操作和机器学习库,Python是数据从业者的一种流行的编程语言–特别是在数据工程和数据科学领域。这两个领域都要处理大量的数据,增加了所需的存储以及内存和处理能力的需求。
许可证费用往往随着你的数据大小而增加,所以使用是有意义的。你还可以在硬件上省钱。因为你可以完全控制应用程序的部署位置,你可以在云端或企业内部找到更便宜的解决方案。
存在许多开源数据库,包括关系型、和图形数据库。关系型数据库一般对结构和一致性非常好,而NoSQL数据库,能够实现快速开发,被设计得更加灵活。
尽管Python与NoSQL数据库配合得非常好,但关系型数据库更适合于分析和大规模的数据处理,这也是Python的常见用途。
让我们将MariaDB与其他一些流行的开源关系型数据库进行比较。
更流行的开源关系型数据库是MariaDB、SQLite、MySQL和。每一个都有一套类似的核心技术能力,但是MariaDB有一些独特的功能,使它最适合Python应用。
此外,MariaDB是开源的,所以它的功能并不依赖于像MySQL这样的外部实体,而MySQL现在是甲骨文公司的。尽管开源社区仍然可以对MySQL提出建议和增加功能,但甲骨文(拥有一个竞争性的数据库)决定了它的发展方向。
另一方面,是在甲骨文收购MySQL后创建的,以继续采用社区主导的开发方式。因此,MariaDB拥有更丰富的功能集,包括更多的存储引擎,确保查询和复制的性能比MySQL更好。在处理大型数据集时,这种改进的性能是非常重要的。
使用的原因要更细微一些,因为PostgreSQL也是社区驱动的。然而,PostgreSQL使用它自己的类似BSD的许可证,即PostgreSQL许可证,它比MariaDB的GNU许可证更加宽松,并且允许用户创建闭源扩展。
虽然它们对创建扩展的用户有利,但这些功能并不总是在核心的PostgreSQL数据库中使用,而且开发者甚至可以对使用他们的扩展收费。MariaDB和MySQL GNU的许可不允许新功能被私有化–所有的新功能都是免费提供的。
MariaDB和PostgreSQL拥有最丰富的功能集。然而,MariaDB对于Python后端有一些方便的功能。例如,MariaDB使用一种语言与所有不同的存储引擎对接–OLAP和OLTP系统用相同的语法控制,减少了开发者的负担。
你的Python后端可以向MariaDB写入类似交易的数据,MariaDB可以将这些数据复制到更适合分析性查询的存储引擎。开发人员可以使用相同的语法编写针对副本的分析查询,以提高性能。
MariaDB最近还为字符串引入了的格式化,与Python相似。这使使用MariaDB和Python的开发人员不必在语言之间进行切换。
2020年之前,Python程序员通过MySQL Python包连接到MariaDB。这是有可能的,因为MariaDB是MySQL的一个分支,但这意味着MariaDB连接的行为与MySQL相同。
2020年,一个原生的被发布,以消除对MySQL的依赖,给MariaDB社区更多控制权。你可以用Python的软件包管理器安装连接器,并将其用于所有常见的CRUD用例。
所有的语句都是通过游标对象管理的。默认情况下,MariaDB游标接受作为准备好的语句的查询,所以你可以对查询的任何动态部分进行消毒。这比格式化字符串来构建查询更安全,格式化字符串会使你的应用程序容易受到。
该连接器使用起来很简单。首先,你将MariaDB连接器库导入到你的应用程序中,并使用以下函数连接到你的MariaDB数据库服务器:
import mariadb
try:
connection = mariadb.connect(
user=username,
password=password,
host=mariadb_host,
port=3306,
database="sales"
)
except mariadb.Error as err:
print(f"An error occurred whilst connecting to MariaDB: {err}")
一旦连接,所有的查询都是通过游标对象执行的。你获得游标对象,然后用它来提交查询。
cursor = conn.cursor()
要将查询作为一个准备好的语句提交,在查询文本中使用一个问号作为占位符,并将所需的值作为一个元组传入。
ur.execute( "SELECT * FROM sales WHERE sale_date >= ? and price > ?", (sale_date_val, price_val))
元组的输入值按从左到右的顺序替换问号。这些输入值也是经过消毒处理的,以防止SQL注入。内置的对SQL注入的保护对像Python这样的语言是有益的,因为它是为初级程序员设计的。
使用MariaDB作为Python应用程序的后台的另一个好处是,很容易将数据库连接到WordPress的前端,特别是在使用Kinsta的时候。
许多服务器支持MariaDB作为后端数据库,使得它们可以立即兼容。你的WordPress网站可以很容易地访问用Python处理的数据集。例如,你可以在Python中进行一些分析,将结果存储在MariaDB中,然后在WordPress页面上以图表形式显示。
多个开源的关系型数据库,包括MariaDB、MySQL和Postgres,都可以作为Python的后端。然而,由于MariaDB的开源性质,它是最灵活和功能最丰富的选择。
在处理大型数据集时,MariaDB提供了许多存储引擎,使得它比其他替代方案更快,并且支持多种用例,从交易处理到分析查询。灵活性、速度以及与MariaDB Python连接器的原生Python集成,使其成为处理大型数据集的Python应用程序的一个伟大选择。
Linux面板环境安装,主要支持LNMP和LAMP、Tomcat、node.js。不过对于大部分站长来说,主要是LNMP和LAMP两个环境的安装。 LNMP和LAMP两个环境的最大区别是,前者采用Nginx作为Web服务器,后者则采用Apache作为Web服务器。(选择哪个作为您的Web服务器,可...
宝塔面板其中一个最为便捷的功能之一,无需SFTP或者FTP即可对服务器的文件内容进行上传、下载、编辑及删除等管理操作。 文件管理,用于管理该服务器上的文件内容。 文件的基础操作 文件的基础操作有哪些了,主要有这些方面:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。...
宝塔面板的计划任务,主要用于安排和管理需要定时执行的任务,如备份、内存清理等。其实对于大部分站长来说,主要使用该板块的备份网站、备份数据库及释放内存的三个定时任务计划。 Shell脚本的添加 输入任务名称,选择执行周期,输入执行的脚本内容。 注意事项: 输入脚本内容...
您可能听说过SaaS,您可能听说过PaaS和IaaS,但您听说过函数即服务 (FaaS) 吗? FaaS市场正在快速增长。根据Allied Market Research的数据,2018年市场价值 。预计到2026年,这一数字将增长到240亿美元——这意味着该行业将从2020年到2026年以2...
您的网络服务器软件会影响您网站的整体性能和加载时间。出于这个原因,选择最适合您需求的Web服务器对于您的网站的成功至关重要。然而,有这么多可用的选项,要知道安装和使用哪一个可能具有挑战性。 在本指南中,我们将回顾八款适用于Windows和Linux的最佳Web服务器。 什么是Web服...
当您开始使用网页设计时,让一切正常工作并查看您希望它看起来如何的关键元素落在 CSS 手中。这是层叠样式表的缩写,它们允许您以任何您想要的方式设置HTML元素的样式。 虽然您可以通过多种方式尝试CSS(通常是内联方式),但还有更好的方式来实现它。这符合您应该遵循的一系列最佳实践,以确保您的代码...