更新Mysql数据库的最快方法

时间:2011-08-09 08:59:50

标签: php mysql utf-8 utf8-decode

只是想知道更新整个(大型)数据库的最佳方法是什么。

基本上我继承了一个有字符问题的数据库,在一些帮助下,我已经对未来的字符问题进行了排序(写入)但是现有的数据需要清理。

有一个很好的建议,我可以使用utf_decode来清理所有这些 - 我在页面本身的错误值上尝试了这个(当被拉入时)并且效果很好。

由于似乎有很多表和大量数据,使用utf_decode扫描整个数据库中所有数据的最佳/最快方法是什么?

由于

感谢您的评论,我似乎无法直接评论,所以在这里放下信息 - 我会仔细看看并给他们一个机会!感谢。

2 个答案:

答案 0 :(得分:1)

获取所有数据,将其转换并插入:

INSERT INTO table VALUES (id, text)
(1, 'utf8'), (2, 'utf8'), (3, 'utf8')

更快,然后使用多INSERT查询执行php循环。

修改

如果你使用一个漂亮的数组,你可以运行一个平滑的系统来做到这一点:

$arr = array('users' => array('user_id', 'text', 'username', 'first_name')));

foreach(array_keys($arr) as $h) {
    $query = mysql_query("SELECT * FROM {$h}");
    while($row = mysql_fetch_object($query)) {
        // Loop thingies, utf8_decode then and stuff
    }
    // Then implode them nicely and use above query
}

告诉我你是否需要更多代码示例。

答案 1 :(得分:1)

您是否尝试过使用MySQL函数CONVERT?根据您的数据,您可以在单个语句中更新表,例如“UPDATE mytable SET myfield = CONVERT(myfield USING utf8)”。

http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html