上上週末在COSCUP聽MySQL穩定性的議題,有一句話讓我感觸很深:「資料庫可以慢、可以斷線,資料就是不能不見」
再加上講者提到一些InnoDB的改進,讓效能不再像以前一樣可怕
於是我就考慮將自己的資料庫引擎從MyISAM換成InnoDB
上網找了些資料之後,打算用PHP來撰寫這支工具
這工具長這樣,很簡陋但真的可以用(無誤
<?php /* 定義MySQL連線參數 */ define("HOST_ADDR", "addrhere"); // 主機位址 define("USERNAME", "userhere"); // 使用者名稱 define("PASSWORD", "passhere"); // 使用者密碼 define("DBNAME", "dbnamehere"); // 資料庫名稱 /* 開始執行 */ $link = mysqli_connect(HOST_ADDR, USERNAME, PASSWORD, DBNAME); if ($link) { echo "Connected Successfully to " . HOST_ADDR . " using " . USERNAME ." identity.\n"; echo "Database swtiched to " . DBNAME . " .\n\n"; echo "Start converting tables to InnoDB.\n"; $list = "SHOW TABLES"; $rs = mysqli_query($link, $list); $table_num = 0; while ($row = mysqli_fetch_array($rs)) { $tbl = $row[0]; $sql = "ALTER TABLE " . $tbl . " ENGINE=InnoDB"; if (mysqli_query($link, $sql)) { echo $tbl . " converted.\n"; $table_num++; } else { echo "**Fail to convert " . $tbl . ".**\n"; } } echo "Successfully converted " . $table_num . " tables."; } else { echo "Connection failed."; } ?>
留言