`
vase
  • 浏览: 423542 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql表不同字符集导致索引失效

 
阅读更多

以前没怎么用过mysql,对其一些内幕不是很了解。昨天查询两张表的时候,等了10秒钟没返回结果,把查询进程停掉,然后执行解析计划发现没用上索引。重建了一遍索引依然未果。

后来看两张表的DDL描述,发现一张表的字符集是latin1,另一个是utf8,latin1的表是从其他库里copy过来的,当时没注意。于是猜想是否是关联的时候数据库自己又做了字符集转换导致索引失效。把latin1的字符集改为utf8,执行成功。看来果然如猜想一样。

 

 

分享到:
评论

相关推荐

    mysql索引失效.docx MySQL索引失效是指在查询执行过程中,数据库无法有效地使用索引来提高查询性能

    这种情况下,即使查询条件与索引列完全一致,也仍然可能因为数据类型不匹配而导致索引失效。 **示例**:假设表中有一列为`char(10)`类型,而索引建立在`int`类型上,当执行如下查询时: ```sql SELECT * FROM ...

    MySQL中索引失效的常见场景与规避方法

    在不同字符集的表间进行比较时,可能会触发隐式转换,导致索引失效。确保所有相关表的字符集一致,或者在查询时显式指定字符集。 为了检测和优化SQL语句的执行计划,可以使用`EXPLAIN`命令来查看MySQL如何使用索引...

    mysql的in会不会让索引失效?

    关于“mysql的in会不会让索引失效”的问题,实际上答案并不是绝对的,这取决于多个因素,包括索引的存在、列表中元素的数量以及查询的其他部分。 首先,我们需要明确的是,MySQL在处理`IN`语句时会尝试利用索引来...

    mysql之Linux安装,重点是索引的优化笔记

    - 修改字符集通常需要编辑`my.cnf`文件中的相关设置。 - 例如: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` **3. 二进制日志** - 配置文件中开启二进制日志...

    mysql关于索引的面试题

    下面将详细讨论索引的类型、存储方式以及可能导致索引失效的场景。 首先,我们来看一下索引的类型: 1. **主键索引(Primary Key Index)**:这是最特殊的索引类型,用于唯一标识表中的每一行记录,且不允许有NULL...

    MySQL 5.1中文手冊

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    mysql面试题目和答案

    - **模糊匹配**:如`LIKE 'abc%'`,索引可以用于前缀匹配,但`LIKE '%abc'`则会导致索引失效。 - **函数或表达式**:索引不会在函数如`UPPER()`或表达式如`column + 1`中使用。 - **隐式类型转换**:如字符串列与...

    mysql官方中文参考手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySQL 5.1参考手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySQL 5.1参考手册 (中文版)

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySQL 5.1参考手册中文版

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列...

    MySQL 5.1官方简体中文参考手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    Mysql面试过关!(详解:索引+常用引擎+常见问题+sql调优)

    - **3.5 参数类型与字段类型不匹配,导致类型发生了隐式转换**:例如,索引字段是 `int` 类型,但查询条件传递的是字符串,则可能会导致索引失效。 - **3.6 查询条件使用or关键字,其中一个字段没有创建索引**:...

    MYSQL中文手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列...

    MySQL5.1参考手册官方简体中文版

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    mysql5.1中文手册

    MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集...

    MySQL高级优化_整理.docx

    避免字符集不匹配导致的乱码问题,应统一客户端、服务端及数据库的字符集设置,通常推荐使用UTF-8。 10. **数据文件与日志**: 数据文件通常位于/var/lib/mysql,包括.frm(表结构),.myd(数据),.myi(索引)...

    mysql开发设计规范

    18. **函数条件过滤**:WHERE子句中避免使用函数,因为这可能导致索引失效。 19. **WHERE条件位置**:尽量将WHERE条件放在行末,以利用索引。 20. **字符集选择**:默认使用latin1字符集,但根据实际需求,可能...

    58到家MySQL数据库开发规范.docx

    - **避免类型转换和函数**:类型转换可能导致索引失效,函数和表达式在WHERE子句中可能导致全表扫描。 - **负向查询和模糊查询**:限制使用,以提高索引利用率。 - **OR改写为IN**:OR操作符可能导致索引失效,...

Global site tag (gtag.js) - Google Analytics