Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara mengoptimalkan tabel MySQL/MariaDB

Perintah dari postingan ini akan berfungsi di server MySQL dan MariaDB.

Sebaiknya lakukan pemeliharaan basis data dari waktu ke waktu. Satu hal yang harus dilakukan adalah mengoptimalkan tabel. Kami memiliki dua opsi:

1. OPTIMALKAN TABEL perintah

Mengatur ulang penyimpanan fisik data tabel dan data indeks terkait, untuk mengurangi ruang penyimpanan dan meningkatkan efisiensi I/O saat mengakses tabel. Perubahan pasti yang dibuat untuk setiap tabel bergantung pada mesin penyimpanan yang digunakan oleh tabel tersebut.

Lihat di bawah cara menggunakannya.

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 [~]#

Jika Anda ingin menjalankan perintah untuk beberapa tabel dari database yang sama, gunakan:

OPTIMIZE TABLE table1,table2,table3;

OPTIMIZE TABLE berfungsi dengan tabel InnoDB, MyISAM, dan ARCHIVE.

2. mysqlcheck perintah

Klien mysqlcheck melakukan pemeliharaan tabel:Ini memeriksa, memperbaiki, mengoptimalkan, atau menganalisis tabel.

Untuk memeriksa satu tabel gunakan:mysqlcheck db_name tbl_name
Untuk memeriksa semua tabel dari database:mysqlcheck –databases db_name
Untuk memeriksa tabel dari semua database di server:mysqlcheck –all-databases

Perhatikan bahwa tabel database terkunci saat mysqlcheck sedang berjalan. Tidak ada catatan yang dapat dimasukkan atau dihapus dari tabel.

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 [~]# 

Untuk mengoptimalkan database, gunakan:

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 [~]#

Untuk mengoptimalkan semua database di server gunakan:

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

Sumber daya:
OPTIMALKAN TABEL manual
panduan 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. Mengapa jumlah baris yang diperkirakan sangat berbeda dalam hasil phpmyadmin?

  2. SQL DELETE dengan JOIN tabel lain untuk kondisi WHERE

  3. Cari semua kemunculan string dalam database mysql

  4. Contoh Pernyataan JDBC – Sisipkan, Hapus, Perbarui, Pilih Rekam

  5. Bagaimana Operator LIKE Bekerja di MySQL