Краткий обзор 25 баз данных, которые актуальны в 2023 году.

Сейчас я познакомлю вас с 25 актуальными базами данных, некоторые из которых, возможно помогут вам в работе.

От классических фаворитов до передовых новичков,
приготовьтесь к дикой поездке по стране баз данных!

@sqlhub – наш телеграм канал с гайдам по базам данных

1. MySQL – The Classic

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;

Oracle похож на популярного школьника, который получает одни пятерки, но при этом играет в каждой спортивной команде – он все делает хорошо!

Конечно, вам понадобятся глубокие знания, чтобы идти в ногу с этой высококлассной системой баз данных, используемой крупнейшими предприятиями по всему миру.

5. Cassandra – Distributed Dynamo

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
    )
""")

Cassandra – это королева пчел распределенных баз данных – она обладает масштабируемостью и отказоустойчивостью. Если вы хотите создать массивное, высокопроизводительное приложение, эта база данных NoSQL может стать вашим новым лучшим другом.

6. Redis – The Speedster

import redis

r = redis.Redis(host="localhost", port=6379)
r.set("name", "John Rush")
print(r.get("name"))

Redis – это тот единственный друг, который может бегать быстрее Усэйна Болта, жонглируя горящими бензопилами. Это хранилище данных in-memory отличается молниеносной скоростью и идеально подходит для кэширования или приложений реального времени.

7. MariaDB – MySQL’s Open-Source Sibling

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
INSERT INTO users (name) VALUES ('John Rush');
SELECT * FROM users;

MariaDB имеет много общего с MySQL, но при этом делает упор на открытый исходный код и ориентированность на сообщество. Это как выбор между Pepsi и Coke – они обе утоляют жажду, просто зависит от того, какой вкус вы предпочитаете!

8. SQLite – The Lightweight Champion

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 – The Postgres Powerhouse

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 – All About Relationships

CREATE (john:User {name: "John Rush"});
MATCH (user:User) RETURN user;

Neo4j делает сложные взаимоотношения похожими на детскую игру благодаря своей модели данных на основе графов. Просматривайте сложные сети с молниеносной скоростью, что делает его идеальным для социальных сетей или рекомендательных систем!

11. Dolt – Git Meets Database World

$ 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 – Scaling MySQL to 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 – The Global Database

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 – Spreadsheet-like 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. Amazon Aurora – AWS’s Database Darling

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;

Microsoft 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 – Serverless Superstar

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 – это высокопроизводительная база данных графов in-memory, созданная для аналитики в реальном времени. Совместимость с языком запросов 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 on Steroids

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 – Full-Text Search Extraordinaire

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 баз данных, которые заставят вас переосмыслить все, что вы знали о хранении данных!

+1
0
+1
7
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *