وظيفة FIND_IN_SET الخاصة بـ MySQL سيئة السمعة لعدم استخدام المؤشرات، مما يؤدي إلى استعلامات غير فعالة. ومع ذلك، هناك طرق بديلة لتحقيق سلوك الفهرسة المطلوب عند التعامل مع قوائم مفصولة بفواصل.
تقترح التقنية الموضحة في الإجابة المقدمة استخدام عبارة معدة مع معلمة قبول سلسلة في شكل قائمة مفصولة بفواصل. باستخدام نوع النطاق مع مفتاح غير NULL في العبارة المعدة، فإنه يضمن أنه سيتم استخدام الفهارس عند تنفيذ جملة IN.
على سبيل المثال، يقوم الاستعلام التالي بإجراء بحث عن نطاق باستخدام فهرس على عمود "المعرف":
شرح حدد * من التصنيفات التي يوجد فيها المعرف (2331425، 430364، 4557546، 2696638، 4510549، ...)explain select * from ratings where id in (2331425, 430364, 4557546, 2696638, 4510549, ...)الاحتياطات والتحذيرات
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3