MySQL LIKE vs LOCATE Performance Comparison
عند البحث عن البيانات في MySQL، قد تتساءل عن المشغل الأكثر كفاءة: LIKE أو LOCATE؟ تستكشف هذه المقالة اختلافات الأداء بين هذين العاملين.
في سيناريو الاستخدام النموذجي، يكون LIKE أسرع قليلاً من LOCATE. ويرجع ذلك في المقام الأول إلى حقيقة أن LIKE لا يقوم بإجراء المقارنة الإضافية مقابل 0 التي يقوم بها LOCATE.
كما هو موضح من خلال نتائج قياس الأداء أدناه، فإن أداء LIKE دائمًا أفضل بشكل هامشي من LOCATE لعدد كبير من التكرارات:
mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar')); --------------------------------------------- | BENCHMARK(100000000,LOCATE('foo','foobar')) | --------------------------------------------- | 0 | --------------------------------------------- صف واحد في المجموعة (3.24 ثانية) mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0); ------------------------------------------------- | BENCHMARK(100000000,LOCATE('foo','foobar') > 0) | ------------------------------------------------- | 0 | ------------------------------------------------- صف واحد في المجموعة (4.63 ثانية) mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%'); -------------------------------------------- | المعيار (100000000،'foobar' LIKE '%foo%') | -------------------------------------------- | 0 | -------------------------------------------- صف واحد في المجموعة (4.28 ثانية)mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar')); --------------------------------------------- | BENCHMARK(100000000,LOCATE('foo','foobar')) | --------------------------------------------- | 0 | --------------------------------------------- 1 row in set (3.24 sec) mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0); ------------------------------------------------- | BENCHMARK(100000000,LOCATE('foo','foobar') > 0) | ------------------------------------------------- | 0 | ------------------------------------------------- 1 row in set (4.63 sec) mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%'); -------------------------------------------- | BENCHMARK(100000000,'foobar' LIKE '%foo%') | -------------------------------------------- | 0 | -------------------------------------------- 1 row in set (4.28 sec)من المهم ملاحظة أن هذه النتائج قد تختلف وفقًا لإصدار قاعدة البيانات المحددة وحجم ومحتويات الجدول الذي تبحث عنه. بشكل عام، ومع ذلك، يعتبر LIKE هو المشغل الأكثر كفاءة لعمليات البحث عن أحرف البدل.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3