Bloom Filters
میاد مقدار مارو هش میکنه و توی یه خونه میزاره. مقدار اولیه اش ۶۴ بایته و اگر توی اون خونه عدد ۱ باشه یعنی اون توی دیتابیس وجود داره یا یکی هش اش شبیه اشه وجود داره، پس:
✅ اگه بگه مقدار نیست، ۱۰۰٪ مطمئنیم که واقعاً نیست.
❌ اگه بگه مقدار هست، شاید اشتباه کنه و مقدار واقعی توی دیتابیس نباشه. (یعنی False Positive داره)
🔹 به درد جاهایی میخوره که میخوایم سریع چک کنیم یه چیزی توی دیتابیس هست یا نه، بدون اینکه کل جدول رو بگردیم.
🔢 آیا ۶۴ بایت برای یه جدول ۱ میلیونی کمه؟
ببین، Bloom Filter حافظه رو فوقالعاده بهینه مصرف میکنه، اما دقتش وابسته به سایزشه!
🔹 اگه خیلی کوچیک باشه (مثلاً ۶۴ بایت)، احتمال خطای False Positive بالا میره.
📏 فرمول برای اندازهی Bloom Filter چیه؟
دو تا چیز رو باید در نظر بگیری:
1️⃣یک: n = تعداد آیتمهایی که قراره ذخیره کنیم (مثلاً ۱ میلیون رکورد)
2️⃣ دو: p = احتمال خطای False Positive (مثلاً ۱٪)