CẢNH BÁO: Hãy thật cẩn thận với các số của bạn và những gì bạn xem là Truy vấn !!!
Tại sao tôi lại đưa ra một cảnh báo như vậy ???
Trở lại vào tháng 8 năm 2011, tôi đã viết bài đăng trên ServerFault giải thích cách có thể thực hiện 1 tỷ Truy vấn trong 24 ngày .
Đây là toàn bộ bài viết:
MySQL sẽ gọi cho các truy vấn nội bộ. Trong thực tế, bất cứ điều gì bạn làm trong MySQL là một truy vấn.
Nếu bạn bật nhật ký chung hoặc nhật ký truy vấn chậm, mọi thứ mysqld sẽ được ghi lại.
Nếu bạn đã bật --log-query-not-used-index , mọi thứ không liên quan đến chỉ mục sẽ nằm trong nhật ký chậm.
Giả sử bạn chạy truy vấn này:
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)
Có, HIỂN THỊ CƠ SỞ; là một truy vấn. Trong thực tế, những gì information_schema tương đương ???
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)
Bảng information_schema.schemata có chỉ mục không ???
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)
Không nó không. Vì vậy, HIỂN THỊ CƠ SỞ; sẽ hạ cánh trong một nhật ký chung và nhật ký chậm (với --log-query-not-used-index được bật)
Do đó, nhiều hoạt động chúng tôi không nghĩ sẽ tạo thành một truy vấn có thể chỉ là một truy vấn, nhưng nội bộ đối với mysqld.
Nếu bạn đang sử dụng bất kỳ công cụ giám sát nào được kết nối với mysqld, điều này cũng sẽ tăng số lượng truy vấn.
Thí dụ:
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)
Chỉ cần lấy thời gian hoạt động của mysqld là một truy vấn. Trong nội bộ, làm thế nào để MySQL đếm các truy vấn đang được thực hiện? Đây là hai biến trạng thái có thể làm sáng tỏ:
Truy vấn : Số lượng câu lệnh được thực hiện bởi máy chủ. Biến này bao gồm các câu lệnh được thực thi trong các chương trình được lưu trữ, không giống như biến Câu hỏi. Nó không tính các lệnh COM_PING hoặc COM_STATISTICS.
Câu hỏi : Số lượng câu lệnh được thực hiện bởi máy chủ. Điều này chỉ bao gồm các câu lệnh được gửi đến máy chủ bởi các máy khách và không phải các câu lệnh được thực thi trong các chương trình được lưu trữ, không giống như biến Queries. Biến này không tính các lệnh COM_PING, COM_STATISTICS, COM_STMT_PREPARE, COM_STMT_CLOSE hoặc COM_STMT_RESET.
Xin đừng lo lắng nếu Máy chủ MySQL của bạn đang bị theo dõi vì giám sát yêu cầu các biến trạng thái đang chạy truy vấn nội bộ để truy xuất dữ liệu được yêu cầu.
1 tỷ trong 24 ngày là
- 41,7 triệu truy vấn mỗi ngày
- 1,736 triệu truy vấn mỗi giờ
- 28.935 truy vấn mỗi phút
- 482 truy vấn mỗi giây
Đối với một phiên bản MySQL đang được theo dõi, những con số này hoàn toàn không được tìm thấy.
Nếu bạn đang sử dụng MySQL Workbench, MySQL Administrator hoặc phpMyAdmin, bất kỳ trang nào các sản phẩm này tạo hoặc cập nhật sẽ triệu tập các truy vấn trạng thái nhỏ này và nhanh chóng chạy số.
TÓM LƯỢC
Nếu trang web của bạn thực sự thực hiện 8 triệu truy vấn, thì Tỷ lệ I / O $ 0,10 cho mỗi 1 triệu yêu cầu, sẽ là $ 0,80 (80 xu) mỗi tháng. Nếu bạn thực hiện 1 tỷ truy vấn trong một tháng, thì đó là 100 đô la. Vui lòng đảm bảo chắc chắn rằng những con số này đã nhảy và NHẬN ĐƯỢC BÀI VIẾT VỚI CFO CỦA BẠN XEM TIẾP THEO VỚI BẠN !!!
CẬP NHẬT 2012-05 / 02 16:26 EDT
Vì đó là 800 triệu truy vấn / tháng, đó là $ 80,00 / tháng