数据库InnoDB引擎的默认支持
2020-07-08 10:37 来自 admin 发布@ Discuz! X3.5专区
我们知道,腾讯云等云服务器的云数据库对于MySQL的数据引擎,默认已不再支持Myisam,InnoDB变成更多的优先选择,X3.5版本将默认使用InnoDB。
为了更好地适配InnoDB,在配置文件中,引入了一个新的相关配置项,这个配置项要正确设置。尤其对于升级用户,否则会导致发帖功能不正常。
/* * 数据库引擎,根据自己的数据库引擎进行设置,3.5之后默认为innodb,之前为myisam * 对于从3.4升级到3.5,并且没有转换数据库引擎的用户,在此设置为myisam */$_config = 'innodb';
为了更好地适配InnoDB,在配置文件中,引入了一个新的相关配置项,这个配置项要正确设置。尤其对于升级用户,否则会导致发帖功能不正常。
/* * 数据库引擎,根据自己的数据库引擎进行设置,3.5之后默认为innodb,之前为myisam * 对于从3.4升级到3.5,并且没有转换数据库引擎的用户,在此设置为myisam */$_config = 'innodb';
X3.5将对取消数据库UTF8编码的支持,转为UTF8-mb4编码
2020-07-08 10:16 来自 admin 发布@ Discuz! X3.5专区
X3.5版本,支持InnoDB与MyISAM两种数据库引擎,在两种引擎下数据库都不再支持utf8编码,转而支持utf8mb4编码。
无论是InnoDB还是MyISAM,所有的表都使用utf8mb4编码与utf8mb4_unicode_ci,该编码的支持,将直接导致X3.5支持emoj表情。
MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符
无论是InnoDB还是MyISAM,所有的表都使用utf8mb4编码与utf8mb4_unicode_ci,该编码的支持,将直接导致X3.5支持emoj表情。
MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符



