Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

15 Mẹo Tối ưu hóa và Điều chỉnh Hiệu suất MySQL / MariaDB hữu ích

MySQL là một mã nguồn mở mạnh mẽ Hệ thống quản lý cơ sở dữ liệu quan hệ hay ngắn gọn là RDBMS . Nó được phát hành trở lại vào năm 1995 (20 năm tuổi). Nó sử dụng Ngôn ngữ truy vấn có cấu trúc mà có lẽ là lựa chọn phổ biến nhất để quản lý nội dung trong cơ sở dữ liệu. Phiên bản MySQL mới nhất là 5.6.25 và được phát hành vào ngày 29 tháng 5 năm 2015 .

Một thực tế thú vị về MySQL là thực tế tên đến từ Michael Widenius’s (MySQL’s Creator) con gái My. Thậm chí mặc dù có rất nhiều sự thật thú vị về MySQL, nhưng bài viết này nhằm chỉ cho bạn một số phương pháp hữu ích để giúp bạn quản lý máy chủ MySQL của mình.

Vào tháng 4 2009 dự án MySQL đã được Oracle mua lại. Do đó, một đợt fork cộng đồng MySQL được gọi là MariaDB đã được tạo ra. Lý do chính của việc tạo fork là để giữ cho dự án được miễn phí theo Giấy phép Công cộng.

Hôm nay MySQL MariaDB là một trong những RDBMS được sử dụng thường xuyên nhất (nếu không phải là nhiều nhất) được sử dụng cho các ứng dụng web như WordPress , Joomla , Magento và những người khác.

Bài viết này sẽ chỉ cho bạn một số mẹo cơ bản nhưng hữu ích để tối ưu hóa hiệu suất của MySQL / MariaDB. Hãy nhớ rằng bài viết này giả định rằng bạn đã cài đặt MySQL hoặc MariaDB. Nếu bạn vẫn đang băn khoăn về cách cài đặt chúng trên hệ thống của mình, bạn có thể làm theo hướng dẫn chuyên sâu của chúng tôi tại đây:

  1. Cài đặt LAMP trên RHEL / CentOS 7
  2. Cài đặt LAMP trên Fedora 22
  3. Thiết lập LAMP trên Ubuntu 15.04
  4. Cài đặt MariaDB trên Debian 8
  5. Cài đặt MariaDB trên Gentoo Linux
  6. Cài đặt MariaDB trên Arch Linux

Quan trọng :Trước khi chúng tôi bắt đầu - đừng chấp nhận những đề xuất này một cách mù quáng. Mỗi thiết lập MySQL là duy nhất và cần phải suy nghĩ thêm trước khi thực hiện bất kỳ thay đổi nào.

Những điều bạn cần biết:

  1. Tệp cấu hình MySQL / MariaDB nằm trong /etc/my.cnf . Mỗi khi sửa đổi tệp này, bạn sẽ cần phải khởi động lại dịch vụ MySQL để những thay đổi mới có thể có hiệu lực.
  2. Để viết bài này MySQL phiên bản 5.6 đã được sử dụng làm mẫu.

1. Bật tệp InnoDB trên mỗi bảng

Trước tiên, điều quan trọng là phải giải thích rằng InnoDB là một công cụ lưu trữ. MySQL và MariaDB sử dụng InnoDB làm công cụ lưu trữ mặc định. Trong quá khứ MySQL được sử dụng để giữ các bảng và chỉ mục cơ sở dữ liệu trong một vùng bảng hệ thống. Cách tiếp cận này dành cho các máy chủ có mục đích duy nhất là xử lý cơ sở dữ liệu và đĩa lưu trữ của chúng không được sử dụng cho bất kỳ mục đích nào khác.

InnoDB cung cấp cách tiếp cận linh hoạt hơn và mỗi thông tin cơ sở dữ liệu được lưu giữ trong một .ibd tập tin dữ liệu. Mỗi .ibd tệp đại diện cho một vùng bảng của riêng nó. Bằng cách đó, các hoạt động cơ sở dữ liệu như “ TRUNCATE ”Có thể được hoàn thành nhanh hơn và bạn cũng có thể lấy lại không gian chưa sử dụng khi xóa hoặc cắt bớt một bảng cơ sở dữ liệu.

Một lợi ích khác của cấu hình này là bạn có thể giữ một số bảng cơ sở dữ liệu trong một thiết bị lưu trữ riêng biệt. Điều này có thể cải thiện đáng kể I / O tải trên đĩa của bạn.

innodb_file_per_table được bật theo mặc định trong MySQL 5.6 trở lên. Bạn có thể thấy điều đó trong /etc/my.cnf tập tin. Lệnh có dạng như sau:

innodb_file_per_table=1

2. Lưu trữ Dữ liệu Cơ sở dữ liệu MySQL trên Phân vùng Riêng biệt

Lưu ý :Thiết lập này chỉ hoạt động với MySQL, nhưng không hoạt động với MariaDB.

Đôi khi việc đọc / ghi hệ điều hành có thể làm chậm hiệu suất của máy chủ MySQL của bạn, đặc biệt nếu nằm trên cùng một ổ cứng. Thay vào đó, tôi khuyên bạn nên sử dụng ổ cứng riêng (tốt nhất là SSD) cho dịch vụ MySQL.

Để hoàn tất, bạn cần phải gắn ổ đĩa mới vào máy tính / máy chủ của mình. Đối với mục đích của bài viết này, tôi sẽ giả định rằng ổ đĩa sẽ nằm dưới / dev / sdb .

Bước tiếp theo là chuẩn bị ổ đĩa mới:

# fdisk /dev/sdb

Bây giờ nhấn “ n ”Để tạo phân vùng mới. Tiếp theo, nhấn “ p ”Để làm cho phân vùng mới chính. Sau đó, đặt số phân vùng từ 1-4 . Sau đó, bạn sẽ chọn kích thước phân vùng. Nhấn enter tại đây. Trong bước tiếp theo, bạn sẽ cần phải định cấu hình kích thước của phân vùng.

Nếu bạn muốn sử dụng toàn bộ đĩa, hãy nhấn enter một lần nữa. Nếu không, bạn có thể đặt kích thước của phân vùng mới theo cách thủ công. Khi sẵn sàng, nhấn “ w ”Để viết các thay đổi. Bây giờ chúng ta sẽ cần tạo một hệ thống tệp cho phân vùng mới của chúng ta. Điều này có thể dễ dàng thực hiện với:

# mkfs.ext4 /dev/sdb1

Bây giờ chúng ta sẽ gắn phân vùng mới của chúng ta vào một thư mục. Tôi đã đặt tên cho thư mục của mình là “ ssd ”Và được tạo trong thư mục gốc:

# mkdir /ssd/

Chúng tôi đã sẵn sàng gắn phân vùng mới mà chúng tôi vừa tạo vào thư mục mới:

# mount /dev/sdb1  /ssd/

Bạn có thể thực hiện gắn kết khi khởi động bằng cách thêm dòng sau vào / etc / fstab tệp.

/dev/sdb1 /ssd ext3 defaults 0 0

Bây giờ bạn đã sẵn sàng để di chuyển MySQL sang đĩa mới. Đầu tiên hãy dừng dịch vụ MySQL bằng:

# service mysqld stop

Tôi cũng khuyên bạn nên dừng Apache / nginx để ngăn chặn mọi nỗ lực ghi vào cơ sở dữ liệu:

# service httpd stop
# service nginx stop

Bây giờ sao chép toàn bộ thư mục MySQL trong ổ đĩa mới:

# cp /var/lib/mysql /ssd/ -Rp

Quá trình này có thể mất một lúc tùy thuộc vào trang web của cơ sở dữ liệu MySQL của bạn. Khi quá trình này hoàn tất, hãy đổi tên thư mục MySQL:

# mv /var/lib/mysql /var/lib/mysql-backup

Tiếp theo, chúng ta sẽ tạo một liên kết biểu tượng.

# ln -s /ssd/mysql /var/lib/mysql

Bây giờ bạn đã sẵn sàng khởi động MySQL và dịch vụ web của mình:

# service mysqld start
# service httpd start
# service nginx start

Tại thời điểm này, cơ sở dữ liệu MySQL của bạn sẽ được truy cập từ ổ đĩa mới.

Trang:1 2 3 4
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng phần mở rộng không gian MySQL để chọn các điểm bên trong vòng tròn

  2. MySQL ROUND () Hàm - Làm tròn một số đến một số vị trí thập phân cho trước

  3. Thay đổi số bắt đầu tăng tự động?

  4. MySQL hiển thị trạng thái - hoạt động hoặc tổng số kết nối?

  5. Làm cách nào để bạn tạo phiên bản cho lược đồ cơ sở dữ liệu của mình?