SQLite چیست؟
یک دیتابیس رابطهای سبک، بدون سرور جداگانه، که کل دیتابیس را در یک فایل واحد ذخیره میکند — مناسب اپلیکیشنهای موبایل، دسکتاپ و تست.
چرا مهم است؟
SQLite نیاز به نصب و راهاندازی سرور دیتابیس را حذف میکند؛ همین سادگی آن را انتخاب پیشفرض اپهای موبایل (از جمله MAUI/Xamarin)، ابزارهای دسکتاپ و تستهای خودکار میکند.
تعریف
SQLite یک دیتابیس رابطهای Embedded است — کل دیتابیس (جدولها، Index، داده) در یک فایل .db روی دیسک ذخیره میشود و هیچ فرایند سرور جداگانهای اجرا نمیشود؛ برنامه مستقیماً با آن فایل کار میکند.
مثال (با EF Core)
services.AddDbContext<AppDbContext>(options =>
options.UseSqlite("Data Source=app.db"));
کجا مناسب است؟
✔ اپلیکیشن موبایل/دسکتاپ (ذخیره محلی) ✔ تستهای خودکار (سریع، بدون نیاز به سرور) ✔ پروژههای کوچک و پروتوتایپ
کجا مناسب نیست؟
❌ برنامههای وب با نوشتن همزمان بالا از چند سرور — SQLite برای همزمانی نوشتن سنگین طراحی نشده است؛ آنجا SQL Server یا PostgreSQL انتخاب درستتری است.
اشتباه رایج
❌ استفاده از SQLite بهعنوان دیتابیس اصلی یک API عمومی با ترافیک بالا و چند Instance همزمان — قفلشدن روی نوشتن (Write Lock) باعث گلوگاه میشود.
منبع و مطالعه بیشتر
خلاصه
SQLite کل دیتابیس را در یک فایل ذخیره میکند و نیاز به سرور جداگانه ندارد — عالی برای موبایل، دسکتاپ و تست. برای وبسرویسهای با نوشتن همزمان بالا مناسب نیست. مرجع کامل: مستندات رسمی SQLite و Microsoft Learn.
