互聯網/Youtube/StackOverflow 上有多個教程/問題可用于查找附近的企業,例如,給定位置(StackOverflow 上的問題):
在這里,用戶可以注冊為客戶和企業(客戶和企業的名稱/地址等(所有)欄位將是分開的,即使是同一用戶)
- 這不是資料庫的樣子,僅用于粗略的想法或專案
- 客戶和企業都將存盤他們的位置
- 客戶可以在他周圍找到附近的商家
我想知道在計算和獲取位置相關欄位的背景關系中使用PostgreSQL 而不是MySQL的具體優勢是什么。
(MySQL多年來一直是一個經過良好測驗的資料庫,我的大部分資料都是關系型的,所以我計劃使用MySQL或Microsoft SQL Server)
如果我選擇使用,在用于計算附近企業的演算法的背景關系中會有任何處理缺點嗎?MySQL,它如何使我的系統變慢?uj5u.com熱心網友回復:
但其中一個共同點是,他們都更喜歡 PostgreSQL(而不是 MySQL)作為 Django 的 Geodjango 庫
他們建議使用 Postgres 的原因是它對空間資料有更好的支持。并不是說 MySQL 不支持空間資料。但是,有很多 Postgres 支持而 MySQL 不支持的特性。您可以查看此頁面了解詳細資訊。幾乎每次在該頁面上提到 MySQL 時,都是在描述它不支持的功能,但 Postgres 支持。
(MySQL 是一個經過多年測驗的資料庫,我的大部分資料都是關系型的,所以我打算使用 MySQL 或 Microsoft SQL Server)
請注意,外鍵約束與 MyISAM 不兼容,MyISAM 是唯一支持空間索引的 MySQL 資料庫引擎。因此,如果您選擇 MySQL,您需要在參照完整性和快速空間查找之間進行選擇。
如果您使用 Postgres,您可以同時擁有參照完整性和快速空間查找。Postgres 現在也是一個相當成熟且廣泛使用的關系資料庫。
如果我選擇使用 MySQL,在用于計算附近業務的演算法的背景關系中是否有任何處理缺點,它會如何使我的系統變慢?
這實際上取決于您要搜索的企業數量。如果選擇不支持空間索引的引擎,MySQL 將被迫進行全表掃描,這需要 O(N) 時間。另一方面,它可以進行邊界框比較以相當快地消除許多幾何圖形。我已經看到 100k 點的可接受的互動性能,之后性能下降。相比之下,帶有空間索引的 Postgres 對于任意數量的點都很快。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/324274.html標籤:mysql 姜戈 PostgreSQL 乔戈
上一篇:在SQLPython中使用INSERTINTO時的整數值更改
下一篇:從連接表中選擇單行
- 這不是資料庫的樣子,僅用于粗略的想法或專案
