क्यों mysql 5.5 5.1 की तुलना में धीमा (linux, mysqlslap का उपयोग करके)


10

my.cnf (5.5 और 5.1 समान है):

back_log=200
max_connections=512
max_connect_errors=999999
key_buffer=512M
max_allowed_packet=8M
table_cache=512
sort_buffer=8M
read_buffer_size=8M
thread_cache=8
thread_concurrency=4
myisam_sort_buffer_size=128M
interactive_timeout=28800
wait_timeout=7200

mysql 5.5:

..mysql5.5/bin/mysqlslap -a --concurrency=10 --number-of-queries 5000 
      --iterations=5 -S /tmp/mysql_5.5.sock --engine=innodb
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 15.156 seconds
        Minimum number of seconds to run all queries: 15.031 seconds
        Maximum number of seconds to run all queries: 15.296 seconds
        Number of clients running queries: 10
        Average number of queries per client: 500

mysql5.1:

..mysql5.5/bin/mysqlslap -a --concurrency=10 --number-of-queries 5000 
      --iterations=5 -S /tmp/mysql_5.1.sock --engine=innodb
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 13.252 seconds
        Minimum number of seconds to run all queries: 13.019 seconds
        Maximum number of seconds to run all queries: 13.480 seconds
        Number of clients running queries: 10
        Average number of queries per client: 500

Mysql 5.5 5.1 की तुलना में धीमा क्यों है?

BTW: मैं कोशिश कर रहा हूँ mysql5.5/bin/mysqlslapऔर mysql5.1/bin/mysqlslap, परिणाम एक ही है


5
एक बेंचमार्क जो 1 सेकंड के लिए चलता है? क्या यह कोई मज़ाक है?

@ पीएफओ, मैं बदल जाता हूं:--concurrency=10 --number-of-queries 5000

1
आपका my.cnf MyISAM को कॉन्फ़िगर करता है लेकिन बेंचमार्क InnoDB का उपयोग करता है। मुझे खेद है, यह अभी भी एक मजाक है (और यदि आप उन्हें नहीं बदलते हैं तो InnoDB चूक हैं)
लॉरिनास बिविनीस

3
मैं अपने my.cnf में InnoDB के लिए कोई ट्यूनिंग नहीं देखता। डिफ़ॉल्ट रूप से कॉन्फ़िगरेशन के खिलाफ एक बेंचमार्क बेकार है और इस छोटी अवधि का एक बेंचमार्क भी बेकार है।
एरोन ब्राउन

जवाबों:


9

आपको यह आश्चर्यजनक लग सकता है, लेकिन MySQL 5.1 कुछ परिस्थितियों में MySQL 5.5 को बेहतर बना सकता है।

Percona ने MySQL के कई रिलीज में सेंध लगाई

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1 (अंतर्निहित InnoDB के साथ)
  • MySQL 5.1 InnoDB-plugin के साथ
  • MySQL 5.5
  • MySQL 5.6

सभी परीक्षण MySQL के साथ अपुष्ट किए गए थे (दूसरे शब्दों में, कोई my.cnf नहीं बनाया गया था)। परिणाम?

  • MySQL 4.1 सर्वश्रेष्ठ एकल-थ्रेडेड करता है
  • MySQL 5.1, InnoDB प्लग-इन तराजू के साथ कई कोर पर बेहतर 5.1 InnoDB में निर्मित, 5.5 और 5.6

यदि आप बेहतर प्रदर्शन करने के लिए MySQL के नए संस्करण चाहते हैं, तो आपको इसके लिए ट्यून करना होगा। वास्तव में, मैंने DBA StackExchange में MySQL Bakeoff प्रदर्शन करने के विचार का वर्णन किया है

मुझे इसके लिए धुन का क्या मतलब है?

MySQL 5.5 में, अधिक समर्पित रीड थ्रेड्स, थ्रेड्स लिखने और समग्र I / O क्षमता का उपयोग करने के लिए नए InnoDB विकल्प हैं। यह मल्टीकोर सर्वर में अधिक सीपीयू संलग्न कर सकता है। अपुष्ट छोड़ दिया, MySQL 5.5 ज्यादातर मामलों में, MySQL के पुराने संस्करणों के रूप में समान स्तर के खेल मैदान पर काम करेगा। कभी-कभी, यह बदतर प्रदर्शन कर सकता है।


1
आपका उत्तर सही है लेकिन मुझे लगता है कि यह ओपी पर लागू नहीं होता है। जब वह InnoDB को कॉन्फ़िगर करता है, तो हम देखेंगे।
लॉरिनस बेविनीस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.