Chuyển MyISAM sang InnoDB cho website WordPress ~ Kiếm Tiền Online

Sunday, February 4, 2024

Chuyển MyISAM sang InnoDB cho website WordPress

WordPress được thiết kế chạy trên cơ sở dữ liệu MySQL là chủ yếu, tối ưu hóa MySQL là một vấn đề rất quan trọng nếu bạn muốn cho WordPress chạy nhanh hơn trên phần cứng mà bạn tiêu dùng.

Trước khi MySQL 5.5 được phát hành, MyISAM là một công cụ lưu trữ mặc định và khi bạn tạo một bảng mới sẽ tiêu dùng MyISAM mặc định. Sau khi bạn nâng cấp lên MySQL 5.5, công cụ mặc định là InnoDB.

Hiện tại năm 2021, nhưng vẫn còn rất nhiều website WordPress tiêu dùng kiểu lưu trữ bảng khá cũ là MyISAM, trong bài viết này cùng Kiếm Tiền Online tìm hiểu về 2 kiểu lưu trữ bảng được tiêu dùng nhiều nhất là InnoDB và MyISAM cùng với cách để bạn chuyển đổi cơ sở dữ liệu MyISAM của bạn sang InnoDB tự động đơn giản nhất.

convert myisam to innodb

1. MyISAM

Đây là một Storage Engine mặc định và được tiêu dùng phổ biến nhất.

– Ưu điểm MyISAM là tương trợ Full Text Search lập chỉ mục toàn văn, cung cấp thuật toán tìm kiếm khá giống Google. Kiến trúc đơn giản nên có tốc độ truy suất (đọc và tìm kiếm) nhanh nhất trong các loại Storage Engine.

– Nhược điểm MyISAM hoạt động theo cơ chế Table Level Locking, nên khi có hành động thực hiện (thêm/sửa/xóa) 1 bản ghi nào đó trong table thì table đó sẽ bị khóa lại, chờ tới khi hành động này được thực hiện xong thì hành động kia mới tiếp tục được thực hiện. Kiến trúc đơn giản, không ràng buộc nên loại Storage Engine này rất dễ bị crash, hỏng chỉ mục với những table có số lượng bản ghi lớn.

2. InnoDB

Đây là Storage Engine mới hơn có nhiều tính năng và ưu điểm vượt trội hơn so với MyISAM.

– Ưu điểm Engine này đánh giá tính toàn vẹn và ràng buộc dữ liệu rất cao, khó xảy ra tình trạng hỏng chỉ mục và crash table. Hoạt động theo cơ chế Row Level Locking, vì vậy trong lúc thực hiện các hành động (thêm/sửa/xóa) trên 1 bản ghi, thì các hoạt động ở bản ghi khác trên table vẫn diễn ra bình thường. Hỗ trợ Transaction giúp đảm bảo an toàn khi thực hiện một khối lệnh SQL đảm bảo nhất quán dữ liệu.
– Nhược điểm Hoạt động cần nhiều RAM hơn, nhưng nếu so sánh với MyISAM trong trường hợp tần suất Insert/Update/Delete lớn thì có khi sẽ lớn hơn vì cơ chế Table Level Locking sẽ gây ra hàng đợi lớn, gây chậm quá trình xử lý.

Chuyển MyISAM sang InnoDB

Với ưu điểm InnoDB, bạn nên chuyển từ MyISAM sang InnoDB ngay để website của mình đạt hiệu suất tốt hơn, dưới đây là cách để bạn chuyển MyISAM sang InnoDB.

Có một số cách để chuyển MyISAM sang InnoDB nhưng để thuận tiện cho người dùng mình sẽ giới thiệu cho bạn một số plugin giúp chuyển MyISAM sang InnoDB với 1 cú click. Nếu bạn là người dùng phổ thông thì thực sự không cần thiết phải động tay, động chân vào trong PHPMyadmin mà hãy dùng plugin ngay cho nó nhanh.

1. Simple MyISAM to InnoDB

Đây là plugin với 1 tính năng duy nhất là chuyển MyISAM sang InnoDB, sau khi cài đặt Simple MyISAM to InnoDB bạn vào Simple MyISAM to InnoDB, chọn các bảng tiêu dùng MyISAM và chuyển sang InnoDB với 1 cú submit ?

simple myisam to innodb

Chuyển MyISAM sang InnoDB với 1 cú submit

Bạn nên tiêu dùng Simple MyISAM to InnoDB để việc chuyển đổi nhanh hơn, không phải tốn công ngồi click như Servebolt Optimizer phía dưới

2. Servebolt Optimizer

Servebolt Optimizer có nhiều tính năng mở rộng hơn là chuyển đổi chỉ chuyển đổi MyISAM sang InnoDB, bạn có thể cài đặt Servebolt Optimizer sau đó truy cập vào Performance optimizer để tiến hành chuyển MyISAM sang InnoDB.

chuyển đổi sang innodb

3. Index WP MySQL For Speed

Đây cũng là một công cụ hay giúp chuyển đổi database tables sang InnoDB với 1 cú click đúng nghĩa, sau khi bạn cài xong Index WP MySQL For Speed bạn truy cập vào Tools > Index MySQL

Backup lại cơ sở dữ liệu để phòng bất trắc chọn I have made a backup sau đó nhấn Upgrade Storage Engine Now để nâng cấp các bảng cơ sở dữ liệu lên InnoDB, công cụ lưu trữ mới nhất của MySQL.

nâng cấp các bảng cơ sở dữ liệu lên innodb

Sử dụng phpMyAdmin

Ngoài cách tiêu dùng plugin để chuyển MyISAM sang InnoDB thì bạn có thể truy cập vào phpMyAdmin để chuyển đổi.

Đăng nhập vào phpMyAdmin. Sau đó chọn Table cần chuyển => Thao tác => Phần Store Engine chọn InnoDB

myisam sang innodb phpmyadmin

=> Thực hiện

thực hiện chuyển đổi

Sử dụng bash script

Ngoài tiêu dùng các cách ở trên, nếu bạn tiêu dùng VPS và có quyền truy cập SSH bạn có thể tiêu dùng bash script để chuyển đổi nhé. Lưu code dưới với tên convert.sh sau đó chmod +x /home/convert.sh

#!/bin/bash# Converts all MyISAM tables in all databases to InnoDBDATABASES="db1 db2"     # Convert databases db1 and db2 only#DATABASES="ALL"         # Convert all databasesMYSQL_USER=root# Uncomment if you're not using ~/.my.cnf file (will receive "Warning: Using a password on the command line interface can be insecure" warnings)#MYSQL_PASS='some-secret-password'MYSQL_HOST=localhost### no need to change anything below# bail out on undefined variablesset -u# mysql command we will useMYSQL_COMMAND="mysql -s -u "$MYSQL_USER" -h $MYSQL_HOST"# Uncomment if you're not using ~/.my.cnf file (will receive "Warning: Using a password on the command line interface can be insecure" warnings)#MYSQL_COMMAND="mysql -s -u "$MYSQL_USER" --password="$MYSQL_PASS" -h $MYSQL_HOST"# get a list of databases if we want to convert all databasesif [ "$DATABASES" == "ALL" ] ; then    DATABASES=$(echo "SHOW DATABASES" | $MYSQL_COMMAND | egrep -v '(performance_schema|information_schema|mysql)')fifor DATABASE in $DATABASES ; do    echo Converting $DATABASE    # Check if the table is MyISAM (we don't want to convert InnoDB tables over and over again)    TABLES=$(echo "SELECT TABLE_NAME FROM information_schema.TABLES where TABLE_SCHEMA = '$DATABASE' and ENGINE = 'MyISAM'" | $MYSQL_COMMAND)    for TABLE in $TABLES ; do        echo Converting MyISAM $TABLE to InnoDB        echo "ALTER TABLE $TABLE ENGINE = INNODB" | $MYSQL_COMMAND $DATABASE    done    if [ "x$TABLES" = "x" ] ; then        echo No MyISAM tables found in $DATABASE database    fi    echodone

Nguồn script: https://github.com/lukapaunovic/convert-to-innodb/tree/master

Sử dụng wp cli

Về cách tiêu dùng wp cli bạn có thể đọc chi tiết tại bài viết Cài đặt WP CLI và quản lý WordPress bằng câu lệnh WP CLI

Trong bài này mình hướng dẫn nhanh cách chuyển đổi MyISAM sang InnoDB

Đi đến thư mục gốc chứa website với câu lệnh cd

cd /home/truongcongthang.com/public_html

Xem thử có bảng nào có MyISAM

wp db query "SHOW TABLE STATUS WHERE Engine = 'MyISAM'" --allow-root

Backup dữ liệu trước khi làm gì đó

wp db export vutruso.sql --allow-root

Chuyển đổi MyISAM sang InnoDB với lệnh wp cli dưới đây, quăng cả vào ssh để chạy hoặc bạn tạo 1 file .sh tương tự như bash scipt mình giới thiệu ở trên.

# create array of MyISAM tablesWPTABLES=($(wp db query "SHOW TABLE STATUS WHERE Engine = 'MyISAM'" --allow-root --silent --skip-column-names | awk '{ print $1}'))# loop through array and alter tablesfor WPTABLE in ${WPTABLES[@]}do    echo "Converting ${WPTABLE} to InnoDB"    wp db query "ALTER TABLE ${WPTABLE} ENGINE=InnoDB" --allow-root    echo "Converted ${WPTABLE} to InnoDB"done

converting to innodb

Ngoài cách này bạn có thể nâng cấp script để tự động chuyển toàn bộ MyISAM sang InnoDB trên toàn bộ website đang có trên VPS bằng cách tạo vòng lặp qua toàn bộ thư mục và chạy wp cli như trên.

Kết luận

Ngoài các cách trên thì còn có cách chuyển đổi bằng WP-CLI hoặc tiêu dùng Command Line trên Linux nữa nhưng với 1 số cách ở trên là quá đủ để bạn chuyển đổi MyISAM sang InnoDB rồi, không cần phải màu mè làm gì cho tốn thời gian.

Để đơn giản và nhanh nhất mình khuyến nghị tiêu dùng plugin Simple MyISAM to InnoDB.


0 nhận xét:

Post a Comment

Chăm sóc tóc

DUNG DỊCH TẮM GỘI KHÔ – PH
90.000₫
MẶT NẠ TÓC PHỤC HỒI HƯ TỔN PREMIUM REPAIR MASK 180G – TSUBAKI
225.000₫
BỒ KẾT HOA BƯỞI 300ML – NCT3
340.000₫
DẦU XẢ THẢO DƯỢC BỒ KẾT SẢ CHANH HOA BƯỞI 300ML – TRƯỜNG HƯNG THỊNH
100.000₫
DẦU GỘI THẢO DƯỢC BỒ KẾT SẢ CHANH HOA BƯỞI 300ML – TRƯỜNG HƯNG THỊNH
100.000₫
SERUM DƯỠNG TÓC HOA BƯỞI GIẢM GÃY RỤNG 50ML – POMELO
84.000₫

Quảng cáo

Nổi bật

Cài đặt Thanh Toán Google adsense bằng ngân hàng Vietcombank

Sau khi đã đủ điều kiện rút tiền từ Google Adsense thì bạn cần phải thêm hình thức thanh toán để Google trả tiền cho bạn.Khi kiếm tiền trên ...

a-ads

Máy tính Laptop

44.990.000đ
Laptop LG Gram 2022 17Z90Q-G.AH76A5 (Core-i7 1260P/16GB/512GB/17″ WQXGA/Win 11/Xám)
24.790.000đ
Laptop LG Gram 2021 16ZD90P-G.AX54A5 (i5-1135G7/8GB RAM/512GB SSD/16″WQXGA/Dos/Trắng)
14.590.000đ
Laptop Acer Gaming Aspire 7 A715-42G-R4ST NH.QAYSV.004 (R5 5500U/8GB RAM/256GB SSD/15.6″FHD IPS/GTX1650 4GB/Win10) – Hàng chính hãng
15.190.000đ
Laptop Acer Aspire 3 A315-58G-50S4 (Core i5 1135G7/8GB RAM/512GB/15.6″FHD/MX350 2GB/Win 10/Bạc)
21.990.000đ
Laptop Acer Swift 5 SF514-55TA-59N4 NX.A6SSV.001 (i5-1135G7/16GB RAM/1TB SSD/14″FHD_Touch/Win10/Xanh) – Hàng chính hãng
14.890.000đ
Laptop Acer Aspire 5 A514-54-59QK (Core i5 1135G7/8GB RAM/512GB/14″FHD/Win 11/Vàng)

Vay Online

Back Link

(x)
(x)
Day noi mi | Hoc noi mi | Noi mi dep | Trung tam day nghe toc | Day cat toc | Day nghe toc | Hoc cat toc | Hoc cat toc o Ha Noi | Hoc cat toc tai Ha Noi | Thuoc chua benh a sung
Dau goi Kafen | Dau xa Kafen | Giao trinh day cat toc | Mua ban rao vat | Dang rao vat | Dien dan rao vat | Rao vat mien phi | Trang rao vat