MySQL

2013-01-01 8 views
8

में विभाजन की पंक्तियां चुनें कैसे करें मैं अपने 300MB तालिका विभाजन कर दिया और इस आदेशMySQL

SELECT * FROM employees PARTITION (p0); 

साथ p0 विभाजन से चयन क्वेरी बनाने की कोशिश कर लेकिन मैं निम्न त्रुटि

ERROR 1064 (42000): You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near '(p0)' at line 1 

कैसे हो रही है विशिष्ट विभाजन से डेटा प्राप्त करने के लिए चयन क्वेरी लिखने के लिए?

+1

चेक इस पोस्ट: http://dba.stackexchange.com/questions/23138/unable करने वाली चुनिंदा-रिकॉर्ड-से-विशिष्ट-विभाजन-इन-mysql। यह समर्थित नहीं है। – bonCodigo

+1

आपको उस निर्माण की आवश्यकता क्यों है? क्या आप बस एक WHERE क्लॉज जोड़ नहीं सकते जो पी 0 हिट करता है? –

उत्तर

10

आपके आधार पर MySQL संस्करण, PARTITION कीवर्ड MySQL 5.6.2 तक मौजूद नहीं है। आप MySQL 5.5 या 5.1 भी उपयोग करेंगे, लेकिन 5.6 नहीं। मामले में, आप MySQL 5.1 उपयोग कर रहे हैं, तो आप की तरह

नीचे
SELECT partition, count(ID) 
FROM 
(
    SELECT ID, 
     case when condition then p1 
      when condition then p2 
     ..... 
     end as partition 

    FROM 
     table 
) s1 
GROUP BY partition 

नोट कुछ वैकल्पिक हल कर सकते हैं: ऊपर समाधान सिर्फ आप उत्पादन की इच्छा प्राप्त करने के लिए वैकल्पिक हल।

आप अपने विभाजन के लिए पंक्तियों की कुल संख्या गिनने के लिए इस क्वेरी को भी आजमा सकते हैं।

SELECT table_rows as 'count(*)' FROM information_schema.partitions WHERE table_schema = schema() and table_name ='employees' and partition_name = 'p0'; 

नोट: आप बदल सकते हैं table_schema = schema()table_schema = 'yourschema'

+0

धन्यवाद, यह – Kad

+0

काम करता है, मैं न्यूनतम स्वीकृति समय पास की प्रतीक्षा करूँगा। – Kad

+0

ठीक नहीं है, बस स्वीकार करने के लिए मत भूलना, अन्य लाभ – Ravi

2

आप सही हैं, पार्टिशन का स्पष्ट चयन 5.1.54 संस्करण में समर्थित नहीं है। this पोस्ट

1
नहीं

यकीन है कि क्यों मेरा उत्तर एक टिप्पणी में परिवर्तित कर दिया करने के लिए;)

इसे वापस लाना। यह question on DBA देखें। यह MYSQL के वर्तमान संस्करण में समर्थित नहीं है।

तुम भी article

+1

खाते की जांच कर रहा था क्योंकि, आपने संक्षिप्त उत्तर पोस्ट किया होगा। – Ravi

+0

वास्तव में इसे पूरा करने से पहले एस्सार पोस्ट किया गया;) वैसे भी धन्यवाद। – bonCodigo

6

MYSQL देव की जाँच कर सकते हैं वास्तव में MySQL 5.6 के बाद से समर्थित वाक्य रचना है:

SELECT * FROM table PARTITION (partitionName);