TIP #28: KIỂM TRA TABLE DÙNG MyISAM HAY InnoDB

03/06/2020

Việc xác định Engine của một table sẽ rất cần thiết trong nhiều trường hợp, đặc biệt là các trường hợp liên quan đến tối ưu hóa (optimize) database. MyISAM sử dụng cơ chế table level locking. Khi có thao tác insert/update/delete record thì toàn bộ table chứa record sẽ bị lock. Cơ chế này dẫn đến nghẽn query trong nhiều trường hợp. Trong khi đó, InnoDB sử dụng cơ chế row level locking, việc insert/update/delete chỉ ảnh hưởng đến row đang được thao tác. Nếu table của bạn đang bị ảnh hưởng bởi table level locking, có thể cân nhắc chuyển engine của table từ MyISAM sang InnoDB.Để kiểm tra Engine của Table đang sử dụng là MyISAM hay InnoDB sử dụng một trong các cách sau:

KIỂM TRA MỘT TABLE ĐANG SỬ DỤNG MyISAM HAY InnoDB

Trường hợp muốn kiểm tra Engine của table “wp_users” nằm trong database “blog_vietnix”:

# Đăng nhập vào MySQL Console
[[email protected] ~]# mysql

# Chọn database "blog_vietnix"
MariaDB [(none)]> use blog_vietnix;

# show engine của table wp_users;
MariaDB [blog_vietnix]> show table status where name="wp_users";
kiểm tra table sử dụng myisam hay innodb

BASH ONELINER

[[email protected] ~]# mysql -uroot -p -e "use blog_vietnix; show table status where name='wp_users'\G"
kiểm tra table sử dụng myisam hay innodb

Xem thêm về cách thực thi MySQL Query trực tiếp từ command line:

KIỂM TRA TẤT CẢ TABLE CỦA MỘT DATABASE ĐANG DÙNG MyISAM HAY InnoDB

Trường hợp muốn kiểm tra engine tất cả table của một Database, trên terminal, thực thi các lệnh sau:

# Đăng nhập vào MySQL Console
[[email protected] ~]# mysql

# Trong console MySQL, thực hiện query
MariaDB [(none)]> SELECT TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA='blog_vietnix';
kiểm tra table sử dụng myisam hay innodb

BASH ONELINER

[[email protected] ~]# mysql -uroot -p -e "SELECT TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA='blog_vietnix'"
kiểm tra table sử dụng myisam hay innodb

Hãy tham gia vào Group Telegarm Quản Trị Linux để thảo luận và học hỏi từ các Sysadmin khác.