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

24/02/2014

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.

Chuyên Mục:

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

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • Mercedex

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