為什麼 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。

立即免費試用我們的數據庫託管。