How To Measure MySQL Query Performance with mysqlslap

Giới thiệu
MySQL đi kèm với một tiện dụng ít công cụ chẩn đoán được gọi là mysqlslap mà đã khoảng từ phiên bản 5.1.4. Nó là một công cụ điểm chuẩn có thể giúp DBAs nhà phát triển tải kiểm tra máy chủ cơ sở dữ liệu của họ.
mysqlslap có thể thi đua một số lớn các kết nối từ máy đánh máy chủ cơ sở dữ liệu cùng một lúc. Các thông số thử nghiệm tải hoàn toàn cấu hình các kết quả từ chạy thử nghiệm khác nhau có thể được sử dụng để tinh chỉnh cơ sở dữ liệu thiết kế hoặc phần cứng tài nguyên.
Trong hướng dẫn này chúng tôi sẽ tìm hiểu làm thế nào để sử dụng mysqlslap để tải kiểm tra sở dữ liệu MySQL với một số truy vấn cơ bản xem như thế nào điểm chuẩn có thể giúp chúng tôi điều chỉnh các truy vấn. Sau khi một số cuộc biểu tình cơ bản, chúng tôi sẽ chạy qua một kịch bản khá thực tế kiểm tra nơi chúng tôi tạo một bản sao của một cơ sở dữ liệu hiện có để thử nghiệm, Soi sáng các truy vấn từ một bản ghi, chạy các bài kiểm tra từ một kịch bản.
Các lệnh, gói, các tập tin hiển thị trong hướng dẫn này đã được thử nghiệm trên CentOS 7. Các khái niệm vẫn như cũ cho bản phát hành khác.
Hệ phục vụ kích thước những gì tôi nên sử dụng?
Nếu bạn quan tâm đến điểm chuẩn một máy chủ cơ sở dữ liệu cụ thể, bạn nên thử nghiệm trên một máy chủ với các đặc điểm tương tự với một bản sao chính xác của cơ sở dữ liệu của bạn được cài đặt.
Nếu bạn muốn chạy qua hướng dẫn này cho mục đích học tập thực hiện lệnh tất cả trong , chúng tôi khuyên bạn nên ít nhất một giọt GB 2. Như các lệnh trong hướng dẫn này nghĩa là để thuế máy chủ, bạn có thể thấy rằng họ thời gian ra trên một máy chủ nhỏ hơn.
Đầu ra mẫu trong hướng dẫn này được sản xuất trong một số cách để tối ưu hóa các ví dụ cho việc giảng dạy.
Bước 1Cài đặt máy chủ MySQL cộng đồng trên một hệ thống kiểm tra
Chúng tôi sẽ bắt đầu bằng cách cài đặt một bản sao tươi của máy chủ MySQL cộng đồng trên sở dữ liệu thử nghiệm. Bạn nên không chạy bất kỳ lệnh hoặc truy vấn từ hướng dẫn này trên một máy chủ cơ sở dữ liệu sản xuất.
Các xét nghiệm này nghĩa là để nhấn mạnh máy chủ thử nghiệm có thể gây ra tụt hậu hoặc thời gian chết trên một máy chủ sản xuất. Hướng dẫn này đã được thử nghiệm với môi trường sau đây:
CentOS 7
Lệnh thực thi bởi một người sử dụng sudo
2 GB giọt đề nghị; Hãy nhớ rằng điểm chuẩn kết quả hiển thị trong hướng dẫn này đã được sản xuất cho mục đích giảng dạy không phản ánh cụ thể DigitalOcean điểm chuẩn
Trước tiên, chúng tôi sẽ tạo một thư mục để giữ tất cả các tập tin liên quan đến bài này. Điều này sẽ giúp giữ cho mọi thứ gọn gàng. Di chuyển vào thư mục này:
sudo mkdir /mysqlslap_tutorial
CD /mysqlslap_tutorial
Tiếp theo, chúng tôi sẽ tải về kho yum MySQL cộng đồng phát hành. Kho lưu trữ chúng tôi đang tải về cho Red Hat Enterprise Linux 7 làm việc cho CentOS 7:
sudo wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Tiếp theo, chúng tôi có thể chạy rpm – Uvh lệnh để cài đặt kho lưu trữ:
sudo rpm – Uvh mysql-cộng đồng-phát hành-el7-5.noarch.rpm
Kiểm tra các kho phần mềm đã được cài đặt bằng cách nhìn vào các nội dung của thư mục /etc/yum.repos.d:
sudo ls -l /etc/yum.repos.d
Đầu ra sẽ giống như thế này:
-rw-r–r–. 1 gốc gốc 1612 4 tháng bảy 21:00 CentOS-Base.repo
-rw-r–r–. 1 gốc rễ 640 4 tháng bảy 21:00 CentOS-Debuginfo.repo
-rw-r–r–. 1 gốc gốc 1331 4 tháng bảy 21:00 CentOS-Sources.repo
-rw-r–r–. 1 gốc rễ 156 4 tháng bảy 21:00 CentOS-Vault.repo
-rw-r–r–. 1 gốc rễ 1209 Jan 29 2014 mysql-community.repo
-rw-r–r–. 1 gốc gốc 1060 Jan 29 2014 mysql-cộng đồng-source.repo
Chúng tôi cũng có thể kiểm tra phiên bản MySQL chính xác được kích hoạt cho cài đặt:
sudo yum repolist kích hoạt | grep mysql
Trong trường hợp của chúng tôi, thị trấn này có máy chủ MySQL 5.6 cộng đồng những gì chúng tôi muốn:
+——————–+
| Cơ sở dữ liệu |
+——————–+
| information_schema |
| MySQL |
| performance_schema |
+——————–+
3 hàng trong thiết lập (0.00 giây)
Cuối cùng, hãy tạo một tài khoản người dùng được gọi là General. Tài khoản này sẽ được sử dụng để đăng nhập vào MySQL thay vì người dùng gốc. Hãy chắc chắn để thay thế mypassword với mật khẩu của riêng của bạn cho người dùng này. Chúng tôi cũng sẽ cấp cho tất cả các quyền cho trương mục này. Tại dấu nhắc MySQL, nhập các lệnh:
tạo người dùng General được xác định bởi ‘mypassword’;
Đầu ra:
Query OK, 0 hàng bị ảnh hưởng (0.00 giây)
Cấp quyền ưu đãi:
cấp tất cả trên *. * để General;
Đầu ra:
Query OK, 0 hàng bị ảnh hưởng (0.01 giây)
Hãy đi quay lại dấu nhắc hệ điều hành cho bây giờ:
bỏ thuốc lá;
Đầu ra:
Tạm biệt
Bước 2Cài đặt sở dữ liệu mẫu
Tiếp theo, chúng ta cần phải cài đặt một cơ sở dữ liệu mẫu để thử nghiệm. Cơ sở dữ liệu này được gọi là nhân viên nó là tự do có thể truy cập từ trang web của MySQL. sở dữ liệu cũng có thể được tải về từ Launchpad. sở dữ liệu nhân viên được phát triển bởi Patrick thuyền viên Giuseppe Maxia. Các dữ liệu ban đầu được tạo ra bởi Fusheng Wang Carlo Zaniolo tại công ty Siemens nghiên cứu.
Chúng tôi đang lựa chọn nhân viên các cơ sở dữ liệu một tập dữ liệu lớn. Cấu trúc cơ sở dữ liệu đơn giản đủ: it’s got chỉ sáu bàn; nhưng các dữ liệu bao gồm hồ sơ nhân viên hơn 3.000.000 (bảng lương chính nó gần ba triệu hàng). Điều này sẽ giúp chúng tôi thi đua một khối lượng công việc sản xuất thực tế hơn.
Trước tiên, hãy chắc chắn rằng chúng tôi đang trong thư mục /mysqlslap_tutorial:
CD /mysqlslap_tutorial
Tải về phiên bản mới nhất của cơ sở dữ liệu mẫu nhân viên:
sudo wget https://launchpad.net/test-db/employees-db-1/1.0.6/+download/employees_db-full-1.0.6.tar.bz2
Cài đặt công cụ bzip2 vì vậy chúng tôi có thể giải nén các kho lưu trữ:
sudo yum cài đặt bzip2
Giải nén các kho lưu trữ cơ sở dữ liệu. Điều này sẽ mất vài phút. Chúng tôi đang làm trong hai bước sau đây:
sudo bzip2 – dfv employees_db-đầy đủ-1.0.6.tar.bz2
sudo tar – xf employees_db-đầy đủ-1.0.6.tar
Nội dung sẽ được không nén vào một thư mục riêng biệt, mới được gọi là employees_db. Chúng ta cần phải di chuyển vào thư mục này để chạy truy vấn cài đặt sở dữ liệu. Nội dung bao gồm một tài liệu README, một Nhật ký thay đổi, dữ liệu kho, các tập tin truy vấn SQL sẽ tạo ra các cấu trúc cơ sở dữ liệu:
CD employees_db
ls -l
Dưới đây là những gì bạn sẽ thấy:
-rw-r–r–. 1 501 trò chơi 752 Mar 2010 Changelog
-rw-r–r–. 1 501 trò chơi 6460 tháng mười 9, 2008 employees_partitioned2.sql
-rw-r–r–. 1 501 trò chơi 7624 tháng 6 năm 2009 employees_partitioned3.sql
-rw-r–r–. 1 501 trò chơi 5660 06 tháng hai năm 2009 employees_partitioned.sql
-rw-r–r–. 1 501 trò chơi 3861 28 11 2008 employees.sql
-rw-r–r–. 1 501 trò chơi 241 30 tháng bảy năm 2008 load_departments.dump
-rw-r–r–. 1 501 trò chơi 13828291 Mar 2010 load_dept_emp.dump
-rw-r–r–. 1 501 trò chơi 1043 30 tháng bảy năm 2008 load_dept_manager.dump
-rw-r–r–. 1 501 trò chơi 17422825 30 tháng bảy năm 2008 load_employees.dump
-rw-r–r–. 1 501 trò chơi 115848997 30 tháng bảy năm 2008 load_salaries.dump
-rw-r–r–. 1 501 trò chơi 21265449 30 tháng bảy năm 2008 load_titles.dump
-rw-r–r–. 1 501 trò chơi 3889 Mar 2010 objects.sql
-rw-r–r–. 1 trò chơi 501 2211 tháng bảy 30 2008 README
-rw-r–r–. 1 501 trò chơi 4455 Mar 2010 test_employees_md5.sql
-rw-r–r–. 1 501 trò chơi 4450 Mar 2010 test_employees_sha.sql
Chạy lệnh này để kết nối với MySQL chạy kịch bản employees.sql, sẽ tạo ra sở dữ liệu tải dữ liệu:
sudo mysql -h localhost -u General -p -t < employees.sql
Tại dấu nhắc, nhập mật khẩu bạn tạo ra cho người sử dụng MySQL General trong phần trước.
Đầu ra quá trình sẽ giống như thế này. sẽ mất một phút hoặc lâu hơn để chạy:
+—————————–+
| THÔNG TIN |
+—————————–+
| TẠO CƠ SỞ DỮ LIỆU CẤU TRÚC |
+—————————–+
+————————+
| THÔNG TIN |
+————————+
| động cơ : InnoDB |
+————————+
+———————+
| THÔNG TIN |
+———————+
| Bộ phận tải |
+———————+
+——————-+
| THÔNG TIN |
+——————-+
| Lực nâng của nhân viên |
+——————-+
+——————+
| THÔNG TIN |
+——————+
| TẢI dept_emp |
+——————+
+———————-+
| THÔNG TIN |
+———————-+
| TẢI dept_manager |
+———————-+
+—————-+
| THÔNG TIN |
+—————-+
| Lực nâng của tiêu đề |
+—————-+
+——————+
| THÔNG TIN |
+——————+
| Lực nâng lương |
+——————+
Bây giờ bạn có thể đăng nhập vào MySQL chạy một số truy vấn cơ bản để kiểm tra các dữ liệu được nhập thành công.
sudo mysql -h localhost -u General -p
Nhập mật khẩu cho người dùng MySQL General.
Kiểm tra danh sách các cơ sở dữ liệu cho sở dữ liệu nhân viên mới:
Hiển thị cơ sở dữ liệu;
Đầu ra:
+——————–+
| Cơ sở dữ liệu |
+——————–+
| information_schema |
| nhân viên |
| MySQL |
| performance_schema |
+——————–+
4 hàng trong thiết lập (0.01 giây)
Sử dụng sở dữ liệu nhân viên:
sử dụng nhân viên;
Kiểm tra các bảng trong đó:
Hiển thị bảng;
Đầu ra:
+———————+
| Tables_in_employees |
+———————+
| bộ phận |
| dept_emp |
| dept_manager |
| nhân viên |
| tiền lương |
| tiêu đề |
+———————+
6 hàng trong thiết lập (0.01 giây)
Nếu bạn muốn, bạn có thể kiểm tra các chi tiết cho mỗi người trong số các bảng. Chúng tôi sẽ chỉ kiểm tra thông tin cho các tiêu đề bảng:
Mô tả tiêu đề;
Đầu ra:
+———–+————-+——+—–+———+——-+
| Lĩnh vực | Loại | Null | Key | Mặc định | Phụ |
+———–+————-+——+—–+———+——-+
| emp_no | INT(11) | KHÔNG | PRI | NULL ||
| tiêu đề | varchar(50) | KHÔNG | PRI | NULL ||
| from_date | Ngày | KHÔNG | PRI | NULL ||
| to_date | Ngày | || NULL ||
+———–+————-+——+—–+———+——-+
4 hàng trong thiết lập (0.01 giây)
Kiểm tra số lượng mục:
MySQL > chọn count(*) từ tiêu đề;
+———-+
| Count(*) |
+———-+
| 443308 |
+———-+
1 hàng trong thiết lập (0.14 giây)
Kiểm tra bất kỳ dữ liệu khácbạn muốn. Chúng tôi bây giờ có thể trở lại dấu nhắc hệ điều hành của chúng tôi:
bỏ thuốc lá;
Bước 3Bằng cách sử dụng mysqlslap
Chúng tôi bây giờ có thể bắt đầu sử dụng mysqlslap. mysqlslap có thể được gọi từ một dấu nhắc trình bao thường xuyên do đó, không cần phải rõ ràng đăng nhập để MySQL. Đối với hướng dẫn này, Tuy nhiên, chúng tôi sẽ mở kết nối thiết bị đầu cuối khác đến máy chủ Linux của chúng tôi bắt đầu một phiên họp mới MySQL từ đó với người sử dụng General, chúng tôi tạo ra trước đó, vì vậy chúng tôi có thể kiểm tra cập nhật một số điều trong MySQL dễ dàng hơn. Vì vậy, chúng tôi sẽ một dấu nhắc mở với sudo người dùng của chúng tôi, một dấu nhắc đăng nhập vào MySQL.
Trước khi chúng tôi nhận được vào cụ thể lệnh để thử nghiệm, bạn có thể muốn hãy xem danh sách các tùy chọn mysqlslap hữu ích nhất. Điều này có thể giúp bạn thiết kế của riêng bạn lệnh mysqlslap sau đó.
Lựa chọn những gì có nghĩa là
tên người dùng MySQL người sử dụng để kết nối với máy chủ cơ sở dữ liệu
-mật khẩu mật khẩu cho tài khoản người dùng. Cách tốt nhấtđể trống dòng lệnh
tên máy chủ máy chủ MySQL cơ sở dữ liệu
-port số hiệu cổng để kết nối với MySQL nếu mặc định không được sử dụng
–concurrency số lượng khách hàng đồng thời kết nối mysqlslap sẽ thi đua
-lặp đi lặp lại số lần thử nghiệm truy vấn sẽ được chạy
-tạo-giản đồ sở dữ liệu sẽ được chạy truy vấn
–truy vấn truy vấn để thực hiện. Điều này thể một chuỗi truy vấn SQL hoặc một đường dẫn đến tập tin kịch bản SQL
-tạo các truy vấn để tạo ra một bảng. Một lần nữa, điều này có thể một chuỗi truy vấn hoặc một đường dẫn đến tập tin SQL
–delimiter delimiter được sử dụng để tách nhiều SQL phát biểu
-động cơ The MySQL sở dữ liệu để sử dụng (ví dụ như, InnoDB)
-tự động tạo ra-sql cho phép MySQL thực hiện tải thử nghiệm với riêng của mình tự động tạo ra lệnh SQL
Trường hợp sử dụng: Điểm chuẩn với SQL tạo ra tự động dữ liệu
Chúng tôi sẽ bắt đầu bằng cách sử dụng tính năng tự động tạo ra-sql của mysqlslap. Khi chúng tôi sử dụng SQL tạo ra tự động, mysqlslap sẽ tạo ra sở dữ liệu tạm thời riêng biệt được gọi là mysqlslap. Cơ sở dữ liệu này sẽ một bảng đơn giản trong đó với một số nguyên một cột loại varchar dân cư với dữ liệu mẫu. Điều này có thể một cách nhanh chóng dễ dàng để kiểm tra hiệu suất tổng thể của máy chủ cơ sở dữ liệu.
Chúng tôi bắt đầu bằng cách kiểm tra kết nối khách hàng duy nhất làm một lặp đi lặp lại của một SQL tạo ra tự động:
sudo mysqlslap–người dùng = General – mật khẩu–host = localhost – tự động-tạo ra-sql–tiết
Đầu ra sẽ giống như thế này:
Điểm chuẩn
Trung bình số giây để chạy tất cả truy vấn: 0.009 giây
Tối thiểu số giây để chạy tất cả truy vấn: 0.009 giây
Tối đa số giây để chạy tất cả truy vấn: 0.009 giây
Số lượng khách hàng chạy truy vấn: 1
Số lượng truy vấn cho mỗi khách hàng trung bình: 0
mysqlslap báo cáo một số điểm chuẩn thống kê như minh hoạ trong đầu ra. báo cáo trung bình, tối thiểu tối đa số giây đã chạy truy vấn. Chúng tôi cũng có thể thấy rằng số lượng các kết nối từ máy sử dụng cho thử nghiệm tải này một trong.
Bây giờ hãy thử kết nối đồng thời 50, các truy vấn tạo ra tự động chạy 10 lần:
sudo mysqlslap–người dùng = General – mật khẩu–host = localhost–concurrency = 50 – lặp đi lặp lại = 10 – tự động-tạo ra-sql–tiết
Ý lệnh này nghĩa năm mươi kết nối từ máy mô phỏng sẽ mỗi ném cùng một truy vấn thử nghiệm cùng một lúc, thử nghiệm này sẽ được lặp đi lặp lại mười lần.
Đầu ra cho chúng ta thấy một sự khác biệt được đánh dấu với tải tăng:
Điểm chuẩn
Trung bình số giây để chạy tất cả truy vấn: 0,197 giây
Tối thiểu số giây để chạy tất cả truy vấn: 0.168 giây
Tối đa số giây để chạy tất cả truy vấn: 0.399 giây
Số lượng khách hàng chạy truy vấn: 50
Lưu ý rằng nếu bạn để đăng nhập, truy vấn sẽ tiếp tục sẽ được thêm vào đăng nhập, có thể làm cho thử nghiệm khó khăn hơn. Vì vậy, hãy chắc chắn rằng bạn vô hiệu hoá các bản ghi ngay sau khi kết thúc thử nghiệm của bạn. Hãy kiểm tra tệp nhật ký được tạo ra trong thư mục /var/lib/mysql:
sudo ls -l/var/lib/mysql/capt *
-rw-rw—. 1 mysql mysql 861 Tháng Chín 24 15:09 /var/lib/mysql/capture_queries.log
Hãy sao chép tệp này vào thư mục kiểm tra MySQL của chúng tôi. Nếu bạn đang sử dụng một máy chủ riêng biệt để thử nghiệm, sao chép vào máy chủ đó.
sudo cp /var/lib/mysql/capture_queries.log /mysqlslap_tutorial/
Không nên khá nhiều các dữ liệu trong tập tin đăng nhập này. Trong ví dụ này, các truy vấnchúng tôi muốn nên gần cuối. Kiểm tra phần cuối của tập tin:
sudo đuôi /mysqlslap_tutorial/capture_queries.log
Đầu ra dự kiến:
Hiển thị 6294 truy vấn cơ sở dữ liệu
6294 truy vấn Hiển thị bảng
6294 danh sách trường sở
6294 danh sách trường dept_emp
6294 danh sách trường dept_manager
6294 danh sách trường nhân viên
6294 danh sách trường lương
6294 danh sách trường tiêu đề
140930 15:34:52 6294 truy vấn chọn e.first_name, e.last_name, d.dept_name, t.title, t.from_date, t.to_date từ nhân viên e tham gia bên trong dept_emp de ON e.emp_no=de.emp_no tham gia bên trong bộ phận d ON de.dept_no=d.dept_no tham gia bên trong tiêu đề t ON e.emp_no=t.emp_no thứ tự bởi e.first_name, e.last_name, d.dept_name, t.from_date
140930 15:35:06 6294 truy vấn thiết toàn cầu general_log = 0
Đăng nhập này cho thấy SQL lệnh dấu thời gian của họ. Tuyên bố chọn SQL gần cuối của tập tin những gì chúng tôi đang quan tâm đến. nên chính xác giống như lệnh chúng tôi chạy trên cơ sở dữ liệu sản xuất, đó là nơi chúng tôi chiếm .
Trong ví dụ này, chúng tôi đã biết các truy vấn. Tuy nhiên, trong một môi trường sản xuất, phương pháp này thể rất hữu ích cho việc tìm kiếm truy vấn bạn có thể không nhất thiết phải biết về điều đó đang chạy trên máy chủ của bạn.
Lưu ý rằng nếu bạn chạy hoặc kích hoạt các truy vấn khác nhau trong khi đăng nhập, tệp này sẽ trông hoàn toàn khác nhau. Trong một kịch bản thực tập tin này có thể được ngập nước với các hàng trăm mục đến từ tất cả các kết nối khác nhau. Mục tiêu của bạn tìm các truy vấn hoặc truy vấn đang gây ra một nút cổ chai. Bạn có thể bắt đầu bằng cách làm cho một danh sách mỗi dòng bao gồm văn bản truy vấn. Sau đó, bạn sẽ một danh sách chính xác những gì truy vấn đã được chạy trên cơ sở dữ liệu của bạn trong bài kiểm tra.
Cho mỗi truy vấn bạn muốn thử nghiệm, sao chép vào một tập tin kết thúc với một phần mở rộng .sql.
dụ:
sudo vi /mysqlslap_tutorial/capture_queries.sql
Nội dung nên MySQL truy vấn bạn muốn thử nghiệm, mà không có bất kỳ ngắt dòng không có một dấu chấm phẩy vào cuối:
CHỌN e.first_name, e.last_name, d.dept_name, t.title, t.from_date, t.to_date từ nhân viên e tham gia bên trong dept_emp de ON e.emp_no=de.emp_no tham gia bên trong bộ phận d ON de.dept_no=d.dept_no tham gia bên trong tiêu đề t ON e.emp_no=t.emp_no thứ tự bởi e.first_name, e.last_name, d.dept_name, t.from_date
Tiếp theo, đảm bảo kết quả truy vấn không được lưu trữ. Quay về kiểm tra MySQL phiên. Chạy lệnh sau:
ĐẶT LẠI BỘ NHỚ CACHE TRUY VẤN;
Bây giờ nó là thời gian để chạy tiện ích mysqlslap với các tập tin kịch bản. Đảm bảo rằng bạn sử dụng các tập tin kịch bản chính xác tên trongtham số truy vấn. Chúng tôi sẽ sử dụng chỉmười kết nối đồng thời lặp lại các bài kiểm tra hai lần. Chạy điều này từ máy chủ thử nghiệm của bạn:
sudo mysqlslap–người dùng = General – mật khẩu–host = localhost–concurrency = 10–lặp đi lặp lại = 2 – tạo ra giản đồ = employees_backup–query=”/mysqlslap_tutorial/capture_queries.sql”–tiết
Điểm chuẩn đầu ra trông như thế này trong hệ thống của chúng tôi:
Điểm chuẩn
Trung bình số giây để chạy tất cả truy vấn: 68.692 giây
Tối thiểu số giây để chạy tất cả truy vấn: 59.301 giây
Tối đa số giây để chạy tất cả truy vấn: 78.084 giây
Số lượng khách hàng chạy truy vấn: 10
Số lượng truy vấn cho mỗi khách hàng trung bình: 1
Vậy làm thế nào chúng tôi có thể cải thiện điểm chuẩn này?
Bạn sẽ cần một số tiền nhất định của sự quen thuộc với MySQL truy vấn để đánh giá các truy vấn làm .
Nhìn lại vào các truy vấn, chúng tôi có thể nhìn thấy thực hiện một số tham gia trên nhiều bảng. Các truy vấn cho thấy nhân viên lịch sử công việc làm như vậy, nó là tham gia bảng khác nhau bởi lĩnh vực empno. cũng sử dụng lĩnh vực deptno để tham gia, nhưng kể từ khi chỉ một vài vùng hồ sơ, chúng tôi sẽ bỏ qua điều này. Kể từ khi nhiều empno mục trong sở dữ liệu, nó là hợp lý để giả định rằng tạo lập chỉ mục trên các lĩnh vực empno có thể cải thiện các truy vấn.
Với một chút luyện tập, một khi bạn đã đặt truy vấn đánh thuế các máy chủ (mà là một phần mysqlslap đó giúp với!), bạn sẽ thể thực hiện đánh giá về các truy vấn dựa trên kiến thức của bạn của MySQL cơ sở dữ liệu của bạn.
Tiếp theo, bạn có thể cố gắng để cải thiện cơ sở dữ liệu của bạn hoặc truy vấn đang được thực hiện trên .
Trong trường hợp của chúng tôi, hãy thêm các chỉ số chúng tôi đã đề cập ở trên. Chúng tôi sẽ tạo ra ba chỉ số trên empno. Một chỉ số sẽ được tạo ra trên các lĩnh vực empno trong bảng nhân viên, một chỉ số sẽ được tạo ra trên các lĩnh vực empno trong bảng deptemp