为什么 MariaDB 非常适合您的 Python 后端

已发表: 2023-04-11

为您的应用程序选择正确的数据库很重要,尤其是对于直接与数据库交互的后端应用程序。 有许多选项可用,每个选项都适合特定的用例,并且具有不同的价格、速度和扩展选项。

Python 通常用于数据密集型应用程序,因为它具有强大的数据操作库,因此用于 Python 应用程序的数据库很重要。

本文将 MariaDB 与其他数据库技术(如 MySQL 和 PostgreSQL)进行了比较,并讨论了为什么它是使用 Python 时的绝佳选择。

是什么让 MariaDB 如此适合 Python?

由于其强大的数据操作和机器学习库,Python 成为数据从业者的流行编程语言——尤其是在数据工程和数据科学领域。 这两个领域都处理大量数据,增加了所需的存储空间以及内存和处理能力需求。

许可成本通常会随着数据量的增加而增加,因此使用开源数据库很有意义。 您还可以在硬件上省钱。 因为您可以完全控制应用程序的部署位置,所以您可以在云端或本地找到最便宜的解决方案。

存在许多开源数据库,包括关系数据库、NoSQL 数据库和图形数据库。 关系数据库通常非常适合结构和一致性,而支持快速开发的 NoSQL 数据库设计得更加灵活。

尽管 Python 与 NoSQL 数据库配合得很好,但关系数据库更适合 Python 的常见用途分析和大规模数据处理。

让我们将 MariaDB 与其他一些流行的开源关系数据库进行比较。

MariaDB Python:强大的后端组合。 找出为什么 MariaDB 胜过 MySQL 和 Postgres。 点击推文

MariaDB 对比 MySQL 对比 PostgreSQL

最流行的开源关系数据库是 MariaDB、SQLite、MySQL 和 PostgreSQL。 每个都有一组相似的核心技术能力,但 MariaDB 有一些独特的特性,使其最适合 Python 应用程序。

此外,MariaDB 是开源的,因此它的功能不依赖于外部实体,例如 Oracle 现在拥有的 MySQL。 尽管开源社区仍然可以向 MySQL 提出建议和添加功能,但 Oracle(它有一个与之竞争的数据库)决定了它的去向。

另一方面,MariaDB 是在 Oracle 收购 MySQL 之后创建的,以继续以社区为主导的开发方式。 因此,MariaDB 具有更丰富的功能集,包括更多的存储引擎,可确保比 MySQL 更好的查询和复制性能。 在处理大型数据集时,这种改进的性能非常重要。

使用 MariaDB 而不是 PostgreSQL 的原因有点微妙,因为 PostgreSQL 也是社区驱动的。 然而,PostgreSQL 使用自己的类 BSD 许可证,即 PostgreSQL 许可证,它比 MariaDB 的 GNU 许可证更宽松,并允许用户创建闭源扩展。

虽然它们有利于创建扩展的用户,但这些功能并不总是在核心 PostgreSQL 数据库中使用,开发人员甚至可以对使用他们的扩展进行收费。 MariaDB 和 MySQL GNU 的许可不允许将新功能私有化——所有新功能都是免费提供的。

MariaDB 和 PostgreSQL 具有最丰富的功能集。 然而,MariaDB 对于 Python 后端有一些方便的特性。 例如,MariaDB 使用一种语言与其所有不同的存储引擎进行交互——OLAP 和 OLTP 系统使用相同的语法进行控制,从而减轻了开发人员的负担。

您的 Python 后端可以将类似事务的数据写入 MariaDB,MariaDB 可以将该数据复制到更适合分析查询的存储引擎。 开发人员可以使用相同的语法针对副本编写分析查询以提高性能。

MariaDB 最近还为字符串引入了类似 f-String 的格式,类似于 Python。 这避免了使用 MariaDB 和 Python 的开发人员在语言之间切换的心理。

MariaDB Python 连接器

2020 年之前,Python 程序员通过 MySQL Python 包连接到 MariaDB。 这是可能的,因为 MariaDB 是 MySQL 的一个分支,但这意味着 MariaDB 连接的行为方式与 MySQL 相同。

2020 年,发布了原生 MariaDB 连接器以消除对 MySQL 的依赖,从而为 MariaDB 社区提供更多控制权。 您可以使用 Python 的包管理器 pip 安装连接器,并将其用于所有常见的 CRUD 用例。

所有语句都通过游标对象进行管理。 默认情况下,MariaDB 游标将查询作为准备好的语句接受,因此您可以清理查询的任何动态部分。 这比格式化字符串以构建查询更安全,后者会使您的应用程序容易受到 SQL 注入攻击。

连接器如何工作

该连接器使用简单。 首先,您将 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 这样的语言是有益的,它是为初学者而设计的。

用于 WordPress 的 Python 和 MariaDB

使用 MariaDB 作为 Python 应用程序后端的另一个好处是可以轻松地将数据库连接到 WordPress 前端,尤其是在使用 Kinsta 时。

Kinsta 支持 MariaDB 作为后端数据库,使它们立即兼容。 您的 WordPress 站点可以轻松访问用 Python 处理的数据集。 例如,您可以在 Python 中执行一些分析,将结果存储在 MariaDB 中,然后将它们作为图表显示在 WordPress 页面上。

Kinsta 还提供了一个名为 DevKinsta 的开发平台,用于开发端到端解决方案。 使用 DevKinsta,您可以使用本地计算机设置一个带有 MariaDB 后端的 WordPress 站点,然后可以在准备好上线后将其推送到 Kinsta。 这种集成使得使用 MariaDB 数据库设置站点变得简单——只需单击几下,您的网站就可以上线。

灵活性、速度和原生 Python 集成:MariaDB 是 Python 后端的首选。 绝对值得一读! 点击鸣叫

概括

多种开源关系数据库,包括 MariaDB、MySQL 和 Postgres,都可以作为 Python 后端。 然而,由于其开源特性,MariaDB 是最灵活和功能最丰富的选项。

在处理大型数据集时,MariaDB 提供了许多存储引擎,使其比其他替代方案更快,并支持从事务处理到分析查询的多种用例。 MariaDB Python 连接器的灵活性、速度和本机 Python 集成使其成为处理大型数据集的 Python 应用程序后端的绝佳选择。

此外,MariaDB 可以直接插入 WordPress 前端,让您的网站可以访问您的数据集。 Kinsta 的 MariaDB 支持使这种集成更加顺畅。 使用 DevKinsta,您可以在通过 Kinsta 部署解决方案之前将您的 WordPress 站点配置为在本地计算机上使用 MariaDB。

立即免费试用我们的数据库托管。