PlanetScale تطلق TIN للبحث النصي الكامل داخل Postgres بأرقام تتجاوز ParadeDB وGIN
فرق كثيرة تدفع لخدمة بحث منفصلة بجوار قاعدة البيانات لأن Postgres كان ضعيفًا في هذا الجانب، وإن صمدت هذه الأرقام يضعف هذا المبرر كثيرًا.
أعلنت PlanetScale في 16 سبتمبر 2026 عن TIN، وهو امتداد للبحث النصي الكامل (full-text search) يعمل داخل Postgres نفسه. كتب الإعلان Eric Ridge وPatrick Reynolds، ووصل إلى الصفحة الأولى في Hacker News في 19 سبتمبر.
أُجري الاختبار على مجموعة نصوص من Stack Exchange حجمها 85 جيجابايت وتضم 150 مليون مستند، على خادم AWS i7i.8xlarge، مع Postgres 18.6 داخل container محدود بـ 8 أنوية افتراضية و32 جيجابايت من الذاكرة. وقورن TIN بـ ParadeDB 0.25.2 وpg_textsearch 1.4.0 والفهرس المدمج GIN.
استغرق بناء الفهرس 8 دقائق و10 ثوانٍ، مقابل 19 دقيقة و20 ثانية لـ ParadeDB، وساعتين و9 دقائق لـ GIN. وفي استعلامات الـ conjunction والعبارات التي تطلب أفضل 10 نتائج، سجل TIN نحو 242 استعلامًا في الثانية، مقابل 24 لـ ParadeDB و0.4 لـ GIN.
ويعود الفرق إلى فكرة واحدة. كل محركات البحث النصي الأخرى تمنح كل مستند رقمًا تسلسليًا خاصًا بها، ثم تضطر إلى تحويل هذا الرقم إلى ctid حتى يجلب Postgres الصف. والـ ctid هو العنوان الفعلي للصف داخل Postgres: رقم الصفحة وموضعه فيها. أما TIN فيستخدم الـ ctid نفسه معرّفًا للمستند منذ البداية، فيلغي خطوة تحويل كانت تتكرر ملايين المرات في الاستعلام الواحد.
ولذلك نتيجة جانبية. حين تدمج المحركات الأخرى أجزاء الفهرس (segments)، تضطر إلى إعادة ترقيم المستندات وإعادة كتابة كل شيء. أما TIN فلا يرقّم شيئًا أصلًا، فينقل الـ bitmaps كما هي.
ولهذا أثر مباشر على التكلفة، إذ تدفع فرق كثيرة لخدمة بحث منفصلة بجوار قاعدة البيانات. لكن ثمة قيدًا مهمًا: TIN ليس امتدادًا مفتوحًا يمكن تثبيته على أي خادم، بل يعمل على Postgres الذي تقدمه PlanetScale، والأرقام حتى الآن هي أرقام الشركة نفسها.