Nếu bạn chưa biết thì MyISAM và InnoDB là 2 công nghệ lưu trữ (storage engine) dữ liệu database được sử dụng phổ biến nhất hiện nay.
MyISAM xuất hiện sớm hơn InnoDB, do đó nó cũng được sử dụng rộng rãi và thị phần lớn hơn.
Hầu hết các website WordPress hiện nay, khi bạn cài đặt WordPress dù chạy trên MySQL hay MariaDB, WordPress sẽ tự cài InnoDB đều đang mặc định sử dụng InnoDB mình để ý thì khoảng từ thời 2018 trở về trước thì mặc định cài WordPress sẽ để là MyISAM làm công nghệ lưu trữ.
Nếu website bạn được cài đặt từ lâu thì hãy lưu ý xem bạn đang sử dụng công nghệ lưu trữ nào nhé. hoặc tận chí cài mới đen đen lại vào MyiSAM.
Tuy nhiên, InnoDB thực sự vượt trội MyISAM ở nhiều khía cạnh.
Do đó, chúng tôi khuyên bạn nên chuyển qua sử dụng InnoDB thay cho MyISAM ngay khi có điều kiện.
InnoDB tỏ ra hoạt động ổn định hơn và ít lỗi hơn MyiSAM trong quá trình sử dụng.
Khi bạn chuyển qua công nghệ MyISAM thành InnoDB tốc độ cải thiện không nhiều cho lắm chỉ dao động từ vài chục ms mà thôi. nhưng không phải cứ nhanh hơn là tốt rồi.
Nó innodb đem lại hiệu suất tốt hơn.
Hôm nay mình sẽ chia sẻ cách chuyển đổi MyISAM thành InnoDB một cách đơn giản không cần truy cập vào phpmyadmin rồi ấn từng cái một thế mất công tốn thời gian.
Mình cũng từng làm nhiều lần như vậy thấy khổ quá, trong thời gian làm cho nhiều khách hàng thì mình tìm kiếm những cách thực sự dễ làm hơn và nhanh hơn rất nhiều, chỉ cần một plugin WordPress là nó đã giúp bạn chuyển đổi.
Một số ưu điểm vượt trội của InnoDB
Nếu bạn quan tâm đến những lợi thế về mặt kỹ thuật của InnoDB thì:
InnoDB hỗ trợ tốt hơn và ổn định hơn myisam gần như ở mọi trường hợp, mình sẽ không chia sẻ kiểu cấp bảng, khóa hàng khóa cột để làm gì thực sự không mấy ai hiểu cho lắm, trừ những người dân lập trình viên chuyên nghiệp chuyên về cơ sở dữ liệu mới cần để ý đến điều đó (họ hiểu các khái niệm cấp bảng cấp hàng thì họ cũng thừa hiểu InnoDB và MyISAM ), mà mình cũng chả hiểu cấp bảng hay cấp hàng (table-level locking gì gì đó đâu)
Mình sẽ bỏ mấy cái khái niệm ít người có thể hiểu đó ra một bên.
Giải thích đơn giản vì dụ như thế này giải thích kỹ thuật thuật ngữ thì đéo ai hiểu đâu phải ai cũng có nền tảng về sql đâu mình sẽ giải thích đơn giản ví dụ minh hoạ: với myisam như bạn đi học thời đi học thời học sinh 1 giáo viên bộ môn toán đi bồi dưỡng kỹ năng giảng dạy của mình phải nghỉ dạy học thì toàn bộ cả khối lớp đó nghỉ hết. Đợi khi nào cô bộ môn kia hoàn tất xong khoá học bồi dưỡng kỹ năng lại thì tiếp tục hoạt động.
Nhưng với innodb thì giáo viên bô môn đó đi bồi dưỡng kỹ năng giảng dạy phải nghỉ dạy thì chống tiết được lập tức thay ngay giáo viên môn khác nào đó vào dạy bù học sinh mọi thứ hoạt động ngon lành. Sau cô kia trở về rồi thì dạy bù lại mượn tại số tiết học của cô dạy thay lúc cô toán đi bồi dưỡng.
Đó là sự khác biệt lớn nhất về innodb và myisam. Tốc độ đọc đơn thuần thì myisam nhanh hơn, nhưng về tốc độ tổng quát toàn tập hệ thống thì innodb nhanh hơn.
Database quá đơn giản thì myisam là lựa chọn tốt hơn, nhưng với wordpress thì database không đơn giản vì vậy innodb là lựa chọn đem lại hiệu suất tốt nhất.
Bỏ qua những thứ khó hiểu bên trên, điều dễ nhận thấy nhất kể từ khi tôi chuyển từ MyISAM sang InnoDB là tính năng “tối ưu database” của các plugin hỗ trợ dọn dẹp tối ưu database WordPress dường như “mất tác dụng” khi bạn chuyển qua InnoDB nhưng giờ thì năm 2021 cũng tùy vào plugin xem có hỗ trợ innoDB hay không.
InnoDB tỏ ra hoạt động ổn định hơn và ít lỗi hơn MyiSAM trong quá trình sử dụng.
Các plugin tối ưu database thường tập trung chính vào MyiSAM hy vọng trong tương lai sẽ tập trung vào InnoDB.
MyISAM có cấu trúc đơn giản nên tốc độ đọc và truy xuất dữ liệu rất nhanh. Tuy nhiên, nó dễ bị lỗi hơn và sẽ gặp phải vấn đề khi website có dữ liệu thường xuyên thay đổi (yêu cầu nhiều tác vụ thêm/ ghi/ xóa record). InnoDB có khả năng ghi dữ liệu nhanh hơn và tốc độ đọc cũng rất tốt.
InnoDB là kiểu dễ hiểu là văn võ xong toàn, MyISAM thì hiểu là chỉ biết võ mà không biết văn.
Một số trang website thì vẫn có thể hoạt động được tốt với MyISAM như những trang web 1.0 thời xưa chỉ cần đọc là chủ yếu, không cần ghi nhiều.
Nhưng giờ thì website 2.0 hay 3.0 đủ thứ .0 là một thứ để kết nối có người bình luận, tương tác, like đủ thứ bla bla thì InnoDB luôn là lựa chọn tốt hơn cho các website thế hệ mới, vừa đọc nhanh vừa ghi nhanh.
Chuyển từ MyISAM sang InnoDB bằng Plugin WordPress
Đây là cách mình thấy hoạt động cực kỳ hiệu quả và rất tốt.
bạn có thể sử dụng plugin Simple MyISAM to InnoDB
Chọn hết tất cả dấu tính xong rồi lưu lại việc còn lại để plugin Simple MyISAM to InnoDB chạy xong rồi thì chúng ta xóa plugin thế là xong. Plugin này khi sử dụng xong nó không lưu lại bất kỳ nạp thêm dữ liệu database nào vào database của bạn, bạn cứ yên tâm mà sử dụng.
dùng plugin Simple MyISAM to InnoDB là cách đơn giản và rất hiệu quả để chuyển đổi MyISAM to InnoDB cho WordPress.
Hoặc bạn plugin litespeed cache cũng hỗ trợ tính năng này. (Bạn đang sử dụng sẵn plugin này thì mới sử dụng cách này, không tự nhiên không sử dụng plugin litespeed cache mà tải plugin này về chỉ chuyển đổi MyISAM to innoDB nó gắn dữ liệu thừa vào database của bạn, bạn không biết sử lý thì rất là lãng phí hiệu suất tốc độ)
Còn những phương pháp chuyển bằng Phpmyadmin thì chuyển thực sự rất mất hơi, hay chuyển bằng WP-CGi thì khả quan hơn nhưng những người mới bắt đầu thì hơi khó khăn. nên mình sẽ không đề cập trong bài viết này.
Chỉ với plugin này bạn đã hết sức đơn giản chuyển đổi MyISAM qua InnoDB Rồi.
Lưu ý: thỉnh thoảng bạn nên kiểm tra lại cơ sở dữ liệu lại của bạn, không nên sử dụng xong hành lúc thì MyISAM lúc cái thì InnoDB như vậy thì sẽ không tốt cho website của bạn.
Chúc bạn thành công !
Nguyễn Công Phúc đã bình luận:
Trong WP Tăng Tốc
Litespeed Cache cũng có tính năng này làm khá nhanh
Gia Tuấn đã bình luận:
Trong WP Tăng Tốc
chuẩn bạn, cái này litespeed làm cũng rất tốt