Sunday, 15 January 2012

mysql - How to get count of matching strings in a large table -


मेरे पास निम्न संरचना वाला एक टेबल है:

  + ----- + - ------------------ + | आईडी | नाम | + ----- + ------------------- + | 1 | एबीसी | + ----- + ------------------- + | 2 | एबीसी (डुप्लिकेट) | + ----- + ------------------- + | 3 | बीसीडी | + ----- + ------------------- + | 4 | बीसीडी (डुप्लिकेट) | + ----- + ------------------- + | 5 | बीसीडी (डुप्लिकेट) | + ----- + ------------------- + | 6 | Efg | + ----- + ------------------- + | 7 | हज | + ----- + ------------------- +   

मुझे प्रत्येक नाम दुहराव ( (डुप्लिकेट) के साथ), अर्थात्:

  + ------------------- + -------- + | नाम | गणना | + ------------------- + -------- + | एबीसी | 2 | + ------------------- + -------- + | बीसीडी | 3 | + ------------------- + -------- + | Efg | 1 | + ------------------- + -------- + | हज | 1 | + ------------------- + -------- +   

मैं यह उल्लेख करना चाहता हूं, कि नाम कॉलम में वास्तव में प्रकार TINYTEXT है। और उसमें बहुत सी पंक्तियाँ होंगी: 5396 में परीक्षण मोड पहले से ही मैंने ग्रुपिंग के साथ TRIM (REPLACE (नाम, '(डुप्लिकेट)', '')) द्वारा स्वयं शामिल होने का प्रयास किया:

  का चयन करें अलग ट्राइम `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` त्रिशूल (`` `` `` नाम ',' (डुप्लिकेट) ',' ') की तरह `टिम' पर (` `` `` `` `` `` `` `` `` ) ग्रुप बाय 1;   

और ... ठीक है, मैंने अपने विकास मशीन पर 4846 पंक्तियों के परिणामस्वरूप 122.62 सेक (?!) लिया।


< P> Q1: क्या यह सही दृष्टिकोण था?

प्रश्न 2: क्या कोई है

बस हटा दें "डुप्लिकेट" टेक्स्ट:

  चुनें (नाम, '(डुप्लिकेट)', ''), गिनती (*) मेरेटेबल समूह से 1    

No comments:

Post a Comment