jjzjj

php - 如何在 PHP 字符串比较中模拟 MySQLs utf8_general_ci 排序规则

基本上,如果两个字符串在我的数据库中的计算结果相同,我还希望能够在应用程序级别进行检查。例如,如果有人在搜索字段中输入“bjork”,我希望PHP能够像MySQL一样将其与字符串“Björk”匹配。我猜PHP没有直接等同于MySQL的整理选项,最简单的做法是编写一个简单的函数来转换字符串,使用strtolower()使它们统一小写和strstr()将多字节字符替换为其相应的ASCII等效字符。这是一个准确的假设吗?有没有人有一个万无一失的数组可以方便地用作strstr()的第二个参数,用于符合各种MySQL排序规则的字符串(特别是为了我当前的需要,utf8_general_ci)?或者

mysql - 什么会降低 MySqls 的性能?

基本上我们对Mysqls的性能很满意,类似的查询都在一瞬间完成。现在我们面临这个查询的问题SELECTdc.id,dmr.art_idFROMdmrJOINdmaONdma.id=dmr.dml_idJOINdcONdc.id=dma.dc_idWHEREdmr.art_id=2285获取5021行需要50秒。缺少索引可能是此类问题的最常见原因。所以我在查询之前加上EXPLAIN并得到了这个查询计划,它显示只使用索引而不使用顺序扫描。表dmr和dma各有300万行,dc有6000行。+----+-------------+-------+--------+---------------