चेतावनी: अपनी संख्या के साथ बहुत सावधान रहें और आप एक प्रश्न के रूप में क्या देखते हैं !!!
मैं ऐसी चेतावनी क्यों दे रहा हूँ ???
अगस्त 2011 में वापस, मैंने सर्वरफॉल्ट में पोस्ट लिखकर बताया कि 24 दिनों में 1 बिलियन क्वेरी को कैसे निष्पादित किया जा सकता है ।
यहाँ वह पूरी पोस्ट है:
MySQL आंतरिक रूप से प्रश्नों के लिए कॉल करेगा। वास्तव में, MySQL में आप जो कुछ भी करते हैं, वह एक क्वेरी है।
यदि आप सामान्य लॉग या धीमी क्वेरी लॉग ऑन करते हैं, तो सब कुछ mysqld रिकॉर्ड किया जाता है।
यदि आपके पास --log- क्वेरीज़-नॉट-यूज़िंग-इंडेक्स सक्षम है, तो सब कुछ धीमी लॉग में अनुक्रमित भूमि को शामिल नहीं करता है।
मान लें कि आप इस क्वेरी को चलाते हैं:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| annarbor |
| dude |
| example |
| garbage |
| lovesh |
| mysql |
| performance_schema |
| replagdb |
| stuff |
| test |
| tostinni |
| wordpress |
| zipcodes |
+--------------------+
14 rows in set (0.06 sec)
हाँ, दिखावा; एक प्रश्न है। वास्तव में, क्या information_schema समकक्ष ???
mysql> select schema_name "Database" from information_schema.schemata;
+--------------------+
| Database |
+--------------------+
| information_schema |
| annarbor |
| dude |
| example |
| garbage |
| lovesh |
| mysql |
| performance_schema |
| replagdb |
| stuff |
| test |
| tostinni |
| wordpress |
| zipcodes |
+--------------------+
14 rows in set (0.08 sec)
क्या तालिका की जानकारी_schema.schemata का सूचकांक है ???
mysql> show create table information_schema.schemata\G
*************************** 1. row ***************************
Table: SCHEMATA
Create Table: CREATE TEMPORARY TABLE `SCHEMATA` (
`CATALOG_NAME` varchar(512) NOT NULL DEFAULT '',
`SCHEMA_NAME` varchar(64) NOT NULL DEFAULT '',
`DEFAULT_CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
`DEFAULT_COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
`SQL_PATH` varchar(512) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
नहीं, यह नहीं है। तो, शो DATABASES; एक सामान्य लॉग और धीमी लॉग में लैंड करेगा (--log- क्वेरीज़-नॉट-यूज़िंग-इंडेक्स सक्षम)
इसलिए, कई ऑपरेशन जो हमें नहीं लगता कि एक क्वेरी का गठन करेंगे, केवल एक क्वेरी हो सकते हैं, लेकिन mysqld के लिए आंतरिक।
यदि आप किसी ऐसे निगरानी उपकरण का उपयोग कर रहे हैं जो mysqld से जुड़ा हुआ है, तो यह प्रश्नों पर गणना भी करेगा।
उदाहरण:
mysql> show global status like 'uptime'; select * from information_schema.global_status where variable_name='uptime';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime | 613 |
+---------------+-------+
1 row in set (0.00 sec)
+---------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+---------------+----------------+
| UPTIME | 613 |
+---------------+----------------+
1 row in set (0.00 sec)
बस mysqld के अपटाइम को प्राप्त करना एक क्वेरी है। आंतरिक रूप से, MySQL को निष्पादित होने वाले प्रश्नों को कैसे गिना जाता है? यहाँ दो स्थिति चर हैं जो कुछ प्रकाश डाल सकते हैं:
क्वेरी : सर्वर द्वारा निष्पादित स्टेटमेंट की संख्या। इस चर में प्रश्नों के चर के विपरीत संग्रहीत कार्यक्रमों के भीतर निष्पादित बयान शामिल हैं। यह COM_PING या COM_STATISTICS कमांड की गणना नहीं करता है।
प्रश्न : सर्वर द्वारा निष्पादित स्टेटमेंट की संख्या। इसमें क्लाइंट द्वारा सर्वर को भेजे गए कथन और क्वेरी चर के विपरीत, संग्रहीत प्रोग्राम के भीतर निष्पादित नहीं किए गए कथन शामिल हैं। यह चर COM_PING, COM_STATISTICS, COM_STMT_PREPARE, COM_STMT_CLOSE, या COM_STMT_RESET आदेशों की गणना नहीं करता है।
कृपया चिंतित न हों यदि आपके MySQL सर्वर की निगरानी की जा रही है क्योंकि स्थिति चर के लिए कॉल करने वाली निगरानी अनुरोधित डेटा को प्राप्त करने के लिए आंतरिक रूप से क्वेरी चला रही है।
24 दिनों में 1 बिलियन है
- प्रति दिन 41.7 मिलियन प्रश्न
- प्रति घंटे 1.736 मिलियन प्रश्न
- प्रति मिनट 28,935 प्रश्न
- 482 प्रश्न प्रति सेकंड
एक MySQL उदाहरण के लिए जिसकी निगरानी की जा रही है, ये संख्या बिल्कुल भी दूर नहीं है।
यदि आप MySQL Workbench, MySQL एडमिनिस्ट्रेटर, या phpMyAdmin का उपयोग कर रहे हैं, तो इन उत्पादों को उत्पन्न करने या अपडेट करने वाले किसी भी पृष्ठ पर इन छोटी स्थिति के प्रश्नों को समन किया जाएगा और जल्दी से नंबर चलाए जाएंगे।
सारांश
यदि आपकी साइट वास्तव में 8M प्रश्न बनाती है, तो एक I / O दर $ 1 प्रति 10 मिलियन अनुरोध, $ 0.80 (80 सेंट) प्रति माह होनी चाहिए। यदि आप एक महीने में 1 बिलियन प्रश्नों को निष्पादित करते हैं, तो वह $ 100.00 है। कृपया सुनिश्चित करें कि इन नंबरों पर जाइव करें और अपने CFO के साथ लिखने के लिए इसे तैयार करें!
अद्यतन 2012-05-02 16:26 EDT
चूँकि यह 800M क्वेरीज़ / महीना है, इसलिए यह $ 80.00 / महीना है