04/10/2018, 20:18

Chuyển đổi tất cả table từ MyISAM sang InnoDB

Thông thường khi tạo 1 bảng trong MySQL sẽ có nhiều kiểu Storage Engine để bạn lựa chọn. Trong đó có 3 kiểu lưu trữ bảng được dùng nhiều nhất là InnoDB, MyISAM và Memory. Nếu vì một lý do nào đó mà bạn cần thay đổi kiểu Storage Engine từ MyISAM sang InnoDB hay ngược lại. Thì đoạn code PHP ...

Thông thường  khi tạo 1 bảng trong MySQL sẽ có nhiều kiểu Storage Engine để bạn lựa chọn. Trong đó có 3 kiểu lưu trữ bảng được dùng nhiều nhất là InnoDB, MyISAM và Memory.

innodb-vs-myisam

Nếu vì một lý do nào đó mà bạn cần thay đổi kiểu Storage Engine từ MyISAM sang InnoDB hay ngược lại. Thì đoạn code PHP sau sẽ giúp các bạn làm điều đó.

<?php
// connect your database here first
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = 'root';

    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
    $dbname = 'databasename';
    mysql_select_db($dbname);

// Actual code starts here
    $sql = "SHOW tables";
    $rs = mysql_query($sql);
    while($row = mysql_fetch_array($rs))
    {
        $tbl = $row[0];
        $sql = "ALTER TABLE $tbl ENGINE=INNODB";
        mysql_query($sql);
    }
?>

Bây giờ việc cần làm của các bạn là thay đổi các tham số $dbhost,$dbuser,$dbpass,$dbname cho phù hợp với thông tin trên host của các bạn là được.

Tags: convert InnoDB MyISAM tables

Chuyên Mục: Sql

Bài viết được đăng bởi webmaster

  • Mercedex

    Để làm gì? Hai cái này ưu, nhược thế nào ad?

    • papyrut

      có rất nhiều bài viết giải thích lợi và hại giữa 2 loại lưu trữ này, mình không thể trong vài lời có thể giải thích rõ cho bạn được, Bạn có thể tham khảo bài viết http://stackoverflow.com/questions/12614541/whats-the-difference-between-myisam-and-innodb .Khi hiểu vấn đề, bạn có thể quay lại bài viết để tham khảo bạn nhé.

0