开发者社区> 问答> 正文

是否使用“设置名称”

在阅读O'Reilly的“高性能MySQL”时,我偶然发现了以下内容

另一个常见的垃圾查询是SET NAMES UTF8,无论如何这是错误的处理方式(它不会更改客户端库的字符集;它仅影响服务器)。

我有点困惑,因为我曾经将“ SET NAMES utf8”放在每个脚本的顶部,以使数据库知道我的查询是utf8编码的。

任何人都可以评论以上引用,或者,更正式地说,是什么建议或最佳实践,以确保我的数据库工作流可识别unicode。

如果相关,我的目标语言是php和python。

展开
收起
保持可爱mmm 2020-05-11 16:20:59 425 0
1 条回答
写回答
取消 提交回答
  • "mysql_set_charset()将是一个选择-但仅限于ext/mysql。为此ext/mysqli,mysqli_set_charset并且您需要指定连接参数。PDO::mysql

    使用此函数会导致MySQL API调用,因此应认为它比发出查询要快得多。

    在性能方面,确保脚本和MySQL服务器之间基于UTF-8通讯的最快方法是正确设置MySQL服务器。由于SET NAMES x是等同于

    SET character_set_client = x; SET character_set_results = x; SET character_set_connection = x; 而SET character_set_connection = x内部也可以执行,SET collation_connection = <<default_collation_of_character_set_x>>您也可以在中静态设置这些服务器变量my.ini/cnf。

    请注意在同一MySQL服务器实例上运行的其他应用程序可能需要的问题,并且需要其他一些字符集。" 来源:stack overflow

    2020-05-11 16:29:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多