⚡ SQLite Engine  |  فناوری‌های نوین وب

بهینه‌سازی دیتابیس SQLite برای ترافیک بالا: حالت WAL و کوئری‌های فوق‌سریع

یکی از رایج‌ترین سوءتفاهم‌ها در مهندسی نرم‌افزار این است که SQLite فقط برای دیتابیس‌های تستی یا برنامه‌های موبایل است. حقیقت این است که SQLite یکی از سریع‌ترین و پایدارترین موتورهای پایگاه داده در دنیاست، به شرطی که تنظیمات حیاتی همزمانی آن به درستی فعال شده باشند.

حالت پیش‌فرض Rollback Journal در برابر حالت مدرن WAL

در حالت سنتی SQLite، هنگام نوشتن روی دیتابیس، کل فایل قفل شده و تمام خوانندگان مسدود می‌شوند. اما با فعال‌سازی حالت Write-Ahead Logging (WAL):

  • خواندن و نوشتن کاملاً همزمان: نویسندگان هرگز خوانندگان را مسدود نمی‌کنند و بالعکس.
  • افزایش ۱۰ برابری سرعت نوشتن: تغییرات ابتدا در انتهای یک فایل لاگ پیوسته نوشته شده و سپس در فواصل بهینه چک‌پوینت می‌شوند.
// پرگماهای ضروری جهت فعال‌سازی توان عملیاتی حداکثر در PHP PDO
$db->exec("PRAGMA journal_mode = WAL;");
$db->exec("PRAGMA synchronous = NORMAL;");
$db->exec("PRAGMA cache_size = -64000;"); // تخصیص ۶۴ مگابایت رم برای کش
$db->exec("PRAGMA busy_timeout = 5000;"); // تاخیر صبورانه ۵ ثانیه‌ای در ترافیک

نتیجه‌گیری در سیستم‌های با مقیاس متوسط

با این کانفیگ در اکوسیستم MHB، سامانه‌های ذخیره‌سازی ابری سبک بدون نیاز به نگهداری سرورهای سنگین MySQL یا Postgres، به سرعت پاسخ‌دهی زیر ۵ میلی‌ثانیه برای ده‌ها هزار درخواست در روز رسیدند.

← بازگشت به فهرست تمام مقالات