✔️ اصطلاح Database Sharding در پایتون: راهکاری برای مقیاسپذیری
دیتابیس Sharding یکی از تکنیکهای مقیاسپذیری دیتابیس است که در آن دادهها به چند بخش کوچکتر (shard) تقسیم میشوند و هر بخش در یک دیتابیس یا سرور جداگانه ذخیره میشود. این کار باعث افزایش سرعت و کاهش فشار روی یک سرور واحد میشود.
در پایتون برای مدیریت Sharding میتوان از فریمورکهای مختلف مثل SQLAlchemy برای پایگاههای دادهی رابطهای یا MongoDB برای پایگاههای دادهی NoSQL استفاده کرد.
مثال ساده Sharding در SQLAlchemy
در این مثال، اگر
#Python #Database #Sharding #مقیاس_پذیری
✅ @Teachify | برنامه نویسی
دیتابیس Sharding یکی از تکنیکهای مقیاسپذیری دیتابیس است که در آن دادهها به چند بخش کوچکتر (shard) تقسیم میشوند و هر بخش در یک دیتابیس یا سرور جداگانه ذخیره میشود. این کار باعث افزایش سرعت و کاهش فشار روی یک سرور واحد میشود.
در پایتون برای مدیریت Sharding میتوان از فریمورکهای مختلف مثل SQLAlchemy برای پایگاههای دادهی رابطهای یا MongoDB برای پایگاههای دادهی NoSQL استفاده کرد.
مثال ساده Sharding در SQLAlchemy
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
import random
# تعریف دو دیتابیس شارد شده
shard_1 = create_engine("sqlite:///shard_1.db")
shard_2 = create_engine("sqlite:///shard_2.db")
metadata = MetaData()
users = Table(
"users", metadata,
Column("id", Integer, primary_key=True),
Column("name", String)
)
# ایجاد جدول در هر shard
metadata.create_all(shard_1)
metadata.create_all(shard_2)
# تابعی برای انتخاب shard بر اساس id
def get_shard(user_id):
return shard_1 if user_id % 2 == 0 else shard_2
# درج دادهها در shard مناسب
def insert_user(user_id, name):
shard = get_shard(user_id)
with shard.connect() as conn:
conn.execute(users.insert().values(id=user_id, name=name))
# جستجوی داده از shard مناسب
def get_user(user_id):
shard = get_shard(user_id)
with shard.connect() as conn:
result = conn.execute(users.select().where(users.c.id == user_id)).fetchone()
return result
# افزودن دادههای نمونه
insert_user(1, "Ali")
insert_user(2, "Sara")
# دریافت داده
print(get_user(1)) # در shard_2 ذخیره شده
print(get_user(2)) # در shard_1 ذخیره شده
در این مثال، اگر
id
عدد زوج باشد، در shard_1 و اگر فرد باشد، در shard_2 ذخیره میشود. این یک راه ساده برای Sharding است، ولی روشهای پیشرفتهتری مثل Range-based و Consistent Hashing هم وجود دارند. #Python #Database #Sharding #مقیاس_پذیری
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7