مقایسه عملکرد جستجوی متنی کامل و تطبیق الگو در PostgreSQL
تحلیل عملکرد جستجوی متنی کامل PostgreSQL در مقابل جستجوی الگو و regex، با تأکید بر معاوضهها و کارایی اجرا در مجموعه دادهای با 3 میلیون رکورد.
مقایسه عملکرد جستجوی PostgreSQL
این مقاله به مقایسه عملکرد بین جستجوی متنی کامل (FTS) و روشهای تطبیق الگو در پایگاه داده PostgreSQL میپردازد. آزمایش بر روی مجموعه دادهای با حدود ۳ میلیون رکورد از سه موجودیت مختلف (فاکتورها، موجودیها و سفارشات) انجام شده است. نتایج نشان میدهد که جستجوی متنی کامل با زمان اجرای حدود ۱ میلیثانیه سریعترین روش است، در حالی که جستجوی الگوی حساس به حروف ۲.۲ میلیثانیه، جستجوی regex بیحساس ۶.۲ میلیثانیه و جستجوی الگوی بیحساس به حروف ۱۱.۵ میلیثانیه زمان میبرد.
- جستجوی متنی کامل: از نمایه GIN استفاده میکند و نتایج را بر اساس رتبه مرتب میکند
- جستجوی الگو: از اسکن ترتیبی استفاده میکند و نتایج متفاوتی ارائه میدهد
- تنظیمات آزمایش: ایجاد نمای مادهای شده و نمایههای بهینهسازی
- محدودیتها: FTS برای جستجوی معنایی عالی است اما برای جستجوی خام محدودیت دارد
- نتیجهگیری: تحت شرایط خاص، FTS گزینه برتر برای جستجوی الگو محسوب میشود
"جستجوی متنی کامل با انعطاف پذیری بالا در محاسبه tsvector و سرعت اجرا برتر است" "هر تصمیم در معماری محصول یک مصالحه است و باید بر اساس نیازها权衡 شود"
با توجه به نتایج، جستجوی متنی کامل PostgreSQL حتی برای جستجوی الگو نیز میتواند گزینه مناسبی باشد، به شرطی که محدودیتهای آن در سناریوهای مورد نظر قابل قبول باشد.
