20 پایگاه داده برای انتخاب در سال 2023 – ساده شده

فکر میکردید پایگاههای اطلاعاتی را میشناسید؟
دوباره فکر کن!
من قصد دارم 25 پایگاه داده جدید و بد بو را به شما معرفی کنم که جوراب شما را از بین می برد.
از مورد علاقه های کلاسیک گرفته تا تازه واردان پیشرفته،
برای یک سواری وحشیانه در سرزمین پایگاه داده آماده شوید!
1. MySQL – کلاسیک
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
MySQL پدربزرگ قابل اعتماد پایگاههای اطلاعاتی است – از سپیده دم وجود داشته و به نحوی بهتر میشود.
با عملکرد خوب و سازگاری با تقریباً هر زبان برنامه نویسی روی زمین، این قدیمی تایمر راه به جایی نمی برد.
2. MongoDB – NoSQL Hipster Kid
// Connect to MongoDB and insert a document
const { MongoClient } = require("mongodb");
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);
await client.connect();
const db = client.db("mydb");
await db.collection("users").insertOne({ name: "John Rush" });
MongoDB آن بچه NoSQL باحالی است که به قوانین اهمیتی نمی دهد.
همه چیز در مورد ذخیره داده ها در اسناد JSON منعطف است و آن را به گزینه ای برای توسعه دهندگانی تبدیل می کند که به دنبال راه حلی بدون طرح واره هستند.
3. PostgreSQL – The Sophisticated One
CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
PostgreSQL ممکن است ترکیبی عالی از عملکرد، ویژگیها و ظرافت باشد.
این گوهر منبع باز با زبان پرس و جو قدرتمند و پشتیبانی از انواع سفارشی، جایگاه خود را در بین پایگاه های داده برتر به دست آورده است.
4. Oracle – The Enterprise Behemoth
CREATE TABLE users (id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY, name VARCHAR2(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
اوراکل مانند آن بچه محبوب مدرسه است که مستقیم A را می گیرد اما در هر تیم ورزشی هم بازی می کند – همه چیز را به خوبی انجام می دهد!
مطمئناً، شما به جیبهای عمیقی نیاز دارید تا با این سیستم پایگاه داده با غلتک بالا که توسط شرکتهای بزرگ در سراسر جهان استفاده میشود، پیش بروید.
5. کاساندرا – دینامو توزیع شده
from cassandra.cluster import Cluster
cluster = Cluster(["127.0.0.1"])
session = cluster.connect()
session.execute("""
CREATE KEYSPACE mykeyspace
WITH replication={'class':'SimpleStrategy', 'replication_factor':1}
""")
session.set_keyspace("mykeyspace")
session.execute("""
CREATE TABLE users (
id UUID PRIMARY KEY,
name text
)
""")
کاساندرا ملکه بانک های اطلاعاتی توزیع شده است – او برای روزها مقیاس پذیری و تحمل خطا دارد! اگر به دنبال ساخت یک برنامه کاربردی عظیم و با کارایی بالا هستید، این پایگاه داده NoSQL ممکن است بهترین دوست جدید شما باشد.
6. Redis – The Speedster
import redis
r = redis.Redis(host="localhost", port=6379)
r.set("name", "John Rush")
print(r.get("name"))
ردیس آن دوستی است که میتواند سریعتر از یوسین بولت در حالی که با ارههای برقی شعلهور شعبده بازی میکند بدود. این ذخیرهسازی دادههای درون حافظه به طرز شگفتانگیزی سریع و مناسب برای ذخیرهسازی حافظه پنهان یا برنامههای بلادرنگ است.
7. MariaDB – خواهر و برادر منبع باز MySQL
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
MariaDB بخش عمده ای از DNA خود را با MySQL به اشتراک می گذارد، اما بر منبع باز و جامعه محور بودن تمرکز دارد. این مانند انتخاب بین پپسی و کوکاکولا است – هر دو تشنگی شما را برطرف می کنند. این فقط به این بستگی دارد که کدام طعم را ترجیح می دهید!
8. SQLite – قهرمان سبک وزن
import sqlite3
conn = sqlite3.connect(":memory:")
c = conn.cursor()
c.execute("""CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);""")
c.execute("""INSERT INTO users (name) VALUES ('John Rush');""")
conn.commit()
for row in c.execute("SELECT * FROM users"):
print(row)
SQLite یک بسته بندی پر وزن را بسته بندی می کند. این یک پایگاه داده SQL مستقل و بدون سرور است که برای پروژهها و برنامههای کوچک که در آن سادگی کلید است، عالی است.
9. YugabyteDB – نیروگاه Postgres
CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
YugabyteDB بهترین PostgreSQL را می گیرد و سس جادویی توزیع شده را اضافه می کند! این پایگاه داده بومی ابری با کارایی بالا از مقیاس بندی افقی و استقرار چند ابری پشتیبانی می کند و در عین حال سازگاری کامل با Postgres را حفظ می کند.
10. Neo4j – همه چیز درباره روابط
CREATE (john:User {name: "John Rush"});
MATCH (user:User) RETURN user;
Neo4j با مدل داده مبتنی بر نمودار، روابط پیچیده را شبیه بازی کودکانه می کند. شبکه های پیچیده را با سرعت رعد و برق طی کنید – آن را برای شبکه های اجتماعی یا موتورهای توصیه ایده آل می کند!
11. Dolt – دنیای پایگاه داده Git Meets
$ dolt init && dolt sql <<EOF
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
INSERT INTO users(name) VALUES ("John Rush");
SELECT * FROM_users;
EOF
Dolt به شما این امکان را می دهد که با ترکیب پایگاه های داده به سبک MySQL با ویژگی های کنترل نسخه Git از حالت عادی خارج شوید! بدون ترس آزمایش کنید. ادغام تغییرات در صورت آماده شدن در این سیستم پایگاه داده ترکیبی نوآورانه.
12. CockroachDB – NewSQL Innovator
CREATE TABLE users (id UUID DEFAULT gen_random_uuid() PRIMARY KEY, name STRING);
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
CockroachDB به عنوان یک راه حل قدرتمند NewSQL که از ابتدا برای محیط های بومی ابری ساخته شده است، در نظر گرفته می شود. با سازگاری Postgres و مقیاس بندی افقی، این یک نیروی قابل محاسبه است!
13. Planetscale – مقیاس کردن MySQL به Infinity
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;
مشکلات YouTube در مقیاس MySQL را به خاطر دارید؟ خب، Planetscale این کار را انجام می دهد! این فناوری از فناوری VTest توسعه یافته توسط YouTube استفاده می کند و یک پلتفرم بدون سرور کاملاً مدیریت شده برای مقیاس بندی MySQL بدون عرق کردن ارائه می دهد.
14. Google Cloud Spanner – پایگاه داده جهانی
const {Spanner} = require("@google-cloud/spanner");
const spanner = new Spanner();
const instance = spanner.instance("my-instance");
const database = instance.database("my-database");
await database.run({
sql: "CREATE TABLE Users (Id STRING(MAX) NOT NULL, Name STRING(MAX)) PRIMARY KEY(Id)"
});
await database.run({ sql: "INSERT Users (Id, Name) VALUES('1', 'John Rush')" });
آیا به داده های ثابت در سراسر قاره ها نیاز دارید؟ Google Cloud Spanner شما را تحت پوشش قرار داده است! این پایگاه داده SQL توزیع شده در سطح جهانی تضمین می کند که داده های شما همیشه در دسترس هستند و در عین حال تضمین های سازگاری قوی را ارائه می دهند.
15. Xata – Simplicity مانند صفحه گسترده
import xatasheet_client as xata
client = xata.Client()
sheet_id = client.create_sheet(title="Users")
rows_added_count = client.insert_rows(sheet_id= sheet_id,
rows=[{"column": "Name", "value": "John Rush"}])
print(f"Rows added count: {rows_added_count}")
Xata سادگی در سطح صفحه گسترده را به پایگاه داده های رابطه ای می آورد! این برنامه که بر روی Postgres و Elasticsearch ساخته شده است، جستجوی متن کامل، روابطی که به راحتی قابل تجسم است و یک API برای TypeScript و Python ارائه می دهد.
16. آمازون آرورا – پایگاه داده AWS عزیزم
import boto3
rds = boto3.client("rds-data")
response = rds.execute_statement(
resourceArn="arn:aws:rds:us-west-2:123456789012:cluster:mysql-cluster",
secretArn="arn:aws:secretsmanager:us-west-2::secret:mysql-pass",
sql="CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));"
)
Amazon Aurora قدرت MySQL یا PostgreSQL را با عملکرد بهتر به اکوسیستم AWS می آورد! همزمان با ادغام یکپارچه با سایر خدمات AWS، به طور خودکار مقیاس می شود.
17. Microsoft SQL Server – The Trusted Workhorse
CREATE TABLE Users (Id INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
Name NVARCHAR(MAX));
INSERT INTO Users(Name) VALUES(N'John Rush');
SELECT * FROM Users;
مایکروسافت SQL Server برای چندین دهه یک نیروگاه قابل اعتماد در دنیای پایگاه داده بوده است! با ویژگی های امنیتی قوی و ادغام با سرویس های ابری Azure، همچنان یک انتخاب محبوب در بین مشاغل بزرگ و کوچک است.
18. Apache HBase – Big Data Behemoth
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
Table table = connection.getTable(TableName.valueOf("users"));
Put putData = new Put(Bytes.toBytes("row"));
putData.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("name"), Bytes.toBytes("John Rush"));
table.put(putData);
ResultScanner resultsScanner = table.getScanner(new Scan());
for (Result res : resultsScanner) {
System.out.println(res);
}
Apache HBase انتخابی مناسب برای کسانی است که با حجم عظیمی از داده های بدون ساختار سر و کار دارند! به عنوان بخشی از اکوسیستم Apache Hadoop، توان نوشتن بالا و خواندن با تأخیر کم را ارائه می دهد.
19. TimescaleDB – Time Series Titan
CREATE TABLE users (
time TIMESTAMPTZ NOT NULL,
name TEXT NOT NULL
);
SELECT create_hypertable('users', 'time');
INSERT INTO users(time, name) VALUES(NOW(), 'John Rush');
SELECT * FROM users;
TimescaleDB PostgreSQL را می گیرد و یک پیچ و تاب سری زمانی اضافه می کند! این تازه وارد که به عنوان افزونه ای برای PostgreSQL ساخته شده است، وقتی با داده های مقیاس بزرگی سروکار دارید که در طول زمان تغییر می کنند – مانند دستگاه های IoT یا تجزیه و تحلیل ها – می درخشد.
20. FaunaDB – سوپراستار بدون سرور
const faunadb = require("faunadb");
const q = faunadb.query;
const client = new faunadb.Client({ secret: "your-secret-key" });
await client.query(
q.CreateCollection({ name: "users" })
);
await client.query(
q.Create(q.Collection("users"), { data: { name: "John Rush" } })
);
FaunaDB به عنوان یک پایگاه داده ابری بدون سرور که برای برنامه های کاربردی مدرن طراحی شده است، وارد عمل می شود. این GraphQL و توابع سفارشی را همراه با سازگاری جهانی و ویژگی های امنیتی داخلی ارائه می دهد.
21. InfluxData – DevOps Dynamo
# Write Data
curl --request POST 'http://localhost:8086/write?db=mydb' \
--data-binary 'user,name="John Rush"'
# Query Data
curl --get 'http://localhost:8086/query' \
--data-urlencode "db=mydb&q=SELECT * FROM user"
InfluxData برای نظارت بر معیارها و رویدادها در زیرساخت شما طراحی شده است. زبان پرس و جو قدرتمند آن می تواند به شناسایی روندها، ناهنجاری ها یا سایر بینش های ارزشمند از داده های سری زمانی شما کمک کند.
22. Memgraph – Graph Database Prodigy
from mgclient import connect
connection = connect(host='127.0.0.1', port=7687)
cursor = connection.cursor()
cursor.execute('CREATE (:User{name:"John Rush"})')
cursor.execute('MATCH (u:User) RETURN u.name')
for row in cursor.fetchall():
print(row)
Memgraph یک پایگاه داده گراف با کارایی بالا و در حافظه است که برای تجزیه و تحلیل بلادرنگ ساخته شده است. سازگاری آن با زبان پرس و جو Cypher آن را به انتخابی عالی برای کسانی که با Neo4j آشنا هستند تبدیل می کند.
23. Riak KV – Key-Value Connoisseur
import riak
client = riak.RiakClient()
bucket = client.bucket("users")
user_key = bucket.new("johnrush", data={"name": "John Rush"})
user_key.store()
fetched_user = bucket.get("johnrush")
print(fetched_user.data)
Riak KV یک فروشگاه با ارزش کلیدی بسیار در دسترس و توزیع شده را ارائه می دهد که می تواند بارهای سنگین را بدون عرق کردن تحمل کند. این برای موارد استفاده مانند بازی، فناوری تبلیغات یا برنامه های تلفن همراه عالی است.
24. KeyDB – Redis در استروئیدها
from keydb import Client as KeyDBClient
keydb_client = KeyDBClient(host="localhost", port=6379)
keydb_client.set("name", "John Rush")
print(keydb_client.get("name"))
KeyDB همه چیزهایی را که در مورد Redis دوست دارید می گیرد و آن را به یازده می رساند! با پشتیبانی چند رشته ای و عملکرد بهبود یافته، این جایگزین منبع باز ممکن است راه حل جدید شما برای ذخیره سازی باشد.
25. MeiliSearch – جستجوی کامل متن فوق العاده
import meilisearch
client = meilisearch.Client('http://127.0.0.1:7700')
index = client.create_index(uid='users')
index.add_documents([{'id': '1', 'name': 'John Rush'}])
results = index.search('John')
print(results.hits)
MeiliSearch قدرت جستجوی تمام متن را با حداقل تنظیمات به نوک انگشتان شما می آورد! این موتور جستجوی فوق سریع و با تحمل اشتباه تایپی را می توان در عرض چند دقیقه در هر برنامه ای ادغام کرد.
در اینجا شما آن را دارید – 25 پایگاه داده که شما را وادار می کند هر چیزی را که فکر می کردید در مورد ذخیره سازی داده می دانستید تجدید نظر کنید!
اگر این تور شما را تشنه محتوای شگفت انگیزتر کرده است، فراموش نکنید که من را در توییتر دنبال کنید @johnrushx جایی که من افکارم را در مورد تغییر دنیای توسعه نرم افزار به اشتراک می گذارم.