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

Cách tối ưu hóa bảng MySQL / MariaDB

Các lệnh từ bài đăng này sẽ hoạt động trên máy chủ MySQL và MariaDB.

Thỉnh thoảng bạn nên thực hiện bảo trì cơ sở dữ liệu. Một điều cần làm là tối ưu hóa các bảng. Chúng tôi có hai lựa chọn:

1. BẢNG TỐI ƯU HÓA lệnh

Tổ chức lại lưu trữ vật lý của dữ liệu bảng và dữ liệu chỉ mục liên quan, để giảm không gian lưu trữ và cải thiện hiệu quả I / O khi truy cập bảng. Các thay đổi chính xác được thực hiện cho mỗi bảng phụ thuộc vào công cụ lưu trữ được sử dụng bởi bảng đó.

Xem bên dưới cách sử dụng nó.

root@web [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3670
Server version: 10.1.22-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use roundcube
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [roundcube]> OPTIMIZE TABLE cache;
+-----------------+----------+----------+-------------------------------------------------------------------+
| Table           | Op       | Msg_type | Msg_text                                                          |
+-----------------+----------+----------+-------------------------------------------------------------------+
| roundcube.cache | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| roundcube.cache | optimize | status   | OK                                                                |
+-----------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (0.04 sec)

MariaDB [roundcube]> quit
Bye
root@web [~]#

Nếu bạn muốn chạy lệnh cho nhiều bảng từ cùng một cơ sở dữ liệu, hãy sử dụng:

OPTIMIZE TABLE table1,table2,table3;

TỐI ƯU HÓA hoạt động với các bảng InnoDB, MyISAM và ARCHIVE.

2. mysqlcheck lệnh

Máy khách mysqlcheck thực hiện bảo trì bảng:Nó kiểm tra, sửa chữa, tối ưu hóa hoặc phân tích bảng.

Để kiểm tra một bảng, hãy sử dụng: mysqlcheck db_name tbl_name
Để kiểm tra tất cả các bảng từ cơ sở dữ liệu: mysqlcheck –databases db_name
Để kiểm tra các bảng từ tất cả cơ sở dữ liệu trên máy chủ: mysqlcheck –all-databases

Lưu ý rằng các bảng cơ sở dữ liệu bị khóa trong khi mysqlcheck đang chạy. Không có bản ghi nào có thể được chèn hoặc xóa khỏi bảng.

root@web [~]# mysqlcheck roundcube
roundcube.cache                                    OK
roundcube.cache_index                              OK
roundcube.cache_messages                           OK
roundcube.cache_shared                             OK
roundcube.cache_thread                             OK
roundcube.contactgroupmembers                      OK
roundcube.contactgroups                            OK
roundcube.contacts                                 OK
roundcube.cp_schema_version                        OK
roundcube.dictionary                               OK
roundcube.identities                               OK
roundcube.searches                                 OK
roundcube.session                                  OK
roundcube.system                                   OK
roundcube.users                                    OK
root@web [~]# 

Để tối ưu hóa cơ sở dữ liệu, hãy sử dụng:

root@web [~]# mysqlcheck -o roundcube
roundcube.cache
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.cache_index
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.cache_messages
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.cache_shared
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.cache_thread
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.contactgroupmembers
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.contactgroups
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.contacts
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.cp_schema_version                        Table is already up to date
roundcube.dictionary
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.identities
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.searches
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.session
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.system
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
roundcube.users
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
root@web [~]#

Để tối ưu hóa tất cả cơ sở dữ liệu trên máy chủ, hãy sử dụng:

root@web [~]# mysqlcheck -o -A

Tài nguyên:
Hướng dẫn sử dụng TỐI ƯU HÓA BẢNG
hướng dẫn sử dụng mysqlcheck


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. đúng cú pháp để sử dụng gần '?'

  2. Cách lấy ngày và giờ hiện tại trong MySQL

  3. JSON_OBJECT () - Tạo một đối tượng JSON từ danh sách các cặp khóa / giá trị trong MySQL

  4. Cú pháp TẠO BẢNG SQL - Được DBMS liệt kê

  5. Sự khác biệt giữa MySQL và SQL là gì?