ПОПЕРЕДЖЕННЯ: Будьте дуже уважні до своїх номерів і того, що ви розглядаєте як Запит !!!
Чому я даю таке попередження ???
Ще в серпні 2011 року я написав повідомлення в ServerFault, в якому пояснив, як можна виконати 1 мільярд запитів за 24 дні .
Ось цілий пост:
MySQL буде викликати запити внутрішньо. Насправді, майже все, що ви робите в MySQL - це запит.
Якщо ви ввімкнете загальний журнал або журнал повільних запитів, все, що робить mysqld, записується.
Якщо у вас увімкнено --log-queries-not-use-index , все, що не включає індекси, потрапляє у повільний журнал.
Скажімо, ви виконуєте цей запит:
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)
Так, ПОКАЗУЙТЕ ДАНІ; - це запит. Насправді, що еквівалентна інформація_шема ???
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)
Чи має таблиця information_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)
Ні, це не є. Отже, ПОКАЗУЙТЕ ДАНІ; висаджується в загальний журнал і повільний журнал (із ввімкненими --log-queries-not-use-indexes)
Тому багато операцій, які, на наш погляд, не становлять запит, можуть бути просто запитом, але внутрішніми для 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 підраховує виконувані запити? Ось дві змінні стану, які можуть пролити світло:
Запити : Кількість операторів, виконаних сервером. Ця змінна включає висловлювання, що виконуються в збережених програмах, на відміну від змінної Questions. Не враховує COM_PING або COM_STATISTICS команд.
Запитання : Кількість операторів, виконаних сервером. Сюди входять лише заяви, надіслані сервером клієнтами, а не заяви, виконані в збережених програмах, на відміну від змінної Queries. Ця змінна не враховує COM_PING, COM_STATISTICS, COM_STMT_PREPARE, COM_STMT_CLOSE або COM_STMT_RESET команд.
Будь ласка, не турбуйтеся, якщо ваш сервер MySQL контролюється, оскільки моніторинг, який вимагає змінних статусу, виконує запити внутрішньо для отримання запитуваних даних.
1 мільярд за 24 дні - це
- 41,7 мільйонів запитів на день
- 1,736 мільйонів запитів на годину
- 28 935 запитів за хвилину
- 482 запити в секунду
Для екземпляра MySQL, який відстежується, ці цифри взагалі не вичерпані.
Якщо ви використовуєте MySQL Workbench, MySQL Administrator або phpMyAdmin, будь-яка сторінка, яку ці продукти генерують або оновлять, викликає ці невеликі запити стану та швидко запускає номери.
ПІДСУМОК
Якщо ваш сайт дійсно робить 8М запитів, то показник вводу-виводу 0,10 дол. США на мільйон запитів повинен становити 0,80 долара (80 центів) на місяць. Якщо ви виконуєте 1 мільярд запитів щомісяця, це 100,00 долара. Будь ласка, переконайтесь, що ці цифри джив і ВІДПОВІДУЙТЕ, ЗАПИСАЙТЕ СЕМЕЙСЬКОГО КОНФОРМАТИЧНОГО СЕЙТУРУ, ЩО ВСТАНОВЛЯЄТЬСЯ до вас !!!
ОНОВЛЕННЯ 2012-05-02 16:26 EDT
Оскільки це 800M запитів на місяць, це $ 80,00 на місяць