gpt4 book ai didi

MySQL 排序规则问题

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:29 25 4
gpt4 key购买 nike

在我的公司,数据库中的表创建得很糟糕。每个表都有不同的排序规则和字符集。

当然,这非常糟糕,但它会使查询失去很多性能,直到服务器崩溃(而且它甚至不是一个很好的数据库......)。

我想知道是否有什么好的MySQL工具、命令或过程来转换表排序规则和字符集。

只需执行 alter table 和 convert 即可阻止特殊字符。这是正常现象还是我做错了什么?

编辑:例如:我有一个使用 uft8 整理的表格财务和一个使用拉丁瑞典语的表格费用。每个表有 1000 到 5000 行。执行以下查询大约需要 15 秒:

select ex.* from expense ex
inner join finance fin on fin.ex_id = ex.id

当它们具有相同的排序规则时,使用更大的表执行更复杂的查询运行得更快。

编辑 2:数据库中的另一个错误:行 ID 都是 varchar(15),而不是 int。

最佳答案

我知道继承遗留模式的乐趣,这些模式是由那些认为“整理”是某种形式的疾病的人创建的。

最好的选择是使用 good ole' mysqldump 将表及其数据导出到 SQL 转储文件。然后在转储文件中手动修改创建语句以设置字符集和排序规则。我是'utf8'的忠实粉丝。如果转储文件很大,请使用 sed 之类的命令行来高效地编辑文件,而无需在编辑器中打开它。

然后删除现有表重新导入修改后的转储。

根据我的经验,您执行此操作的任何其他方式都可以掷骰子。

现在可能是将它们全部转换为同一个存储引擎或将您的 MySQL 服务器升级到 5.5 的好时机。

关于MySQL 排序规则问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13649919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com