`
sb122k
  • 浏览: 66132 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

mysql 索引列类型不同

阅读更多
前几天用python 脚本刷数据,遇见一个奇怪的问题:
运行第一遍一切正常,第二遍时长时间无反应,因为python本身不熟悉,开始以为是资源没有释放,调试了几次,排除了这个问题。

mysql show process,发现有一个sql查询长运行。并确定问题就是这个查询导致。
select a.* from a left join b on a.bid = b.uuid  

大约是这样了
EXPLAIN sql ,发现这个查询中索引没有起作用。我发现这两个索引列的类型不一致,一个是char
一个是varchar,google,baidu良久,没有找到答案.
感谢我的同事,帮我找到一个解决方案
select a.* from a left join b on cast(a.bid as char) = b.uuid  

问题解决,另外,发现有遍文章提到了这个点
http://database.51cto.com/art/200911/165561.htm
分享到:
评论

相关推荐

    MySQL索引类型大汇总

    唯一索引与普通索引类似,唯一的区别是索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。可以通过以下三种方式创建唯一索引: * 创建索引:`CREATE UNIQUE INDEX indexName ON mytable...

    MySQL 索引最佳实践

    ### MySQL索引最佳实践 #### 理解索引的重要性 在数据库管理中,索引是一种数据结构,用于提高查询速度。它对于开发者和数据库管理员(DBA)来说至关重要。索引选择不当可能会导致生产环境中的诸多问题。尽管索引...

    mysql 索引与执行计划

    2. **唯一索引**:确保索引列中的值是唯一的,但允许值为空。 3. **复合索引**:包含多个列的索引,可用于同时基于多个字段进行查询。 4. **聚簇索引(聚集索引)**:这是一种特殊的数据存储方式,通常与主键相关联...

    MySQL索引最佳实践

    ### MySQL索引最佳实践 ...通过以上内容的学习,我们可以了解到MySQL索引的重要性和不同类型的索引在实际应用中的优势与局限性。正确地理解和运用这些知识可以帮助我们更高效地管理和优化数据库性能。

    mysql数据库索引类型

    2. 唯一索引( Unique Index):唯一索引是指索引列中的值必须是唯一的,用于确保数据的唯一性。 3. 主键索引( Primary Key Index):主键索引是指表的主键列上的索引,用于确保数据的唯一性和组织数据的结构。 4. ...

    MySQL Innodb 索引原理详解

    主键索引是基于主键列构建的B+树索引,其中每个叶子节点存储完整的行记录。主键索引提供了最快的访问速度,因为主键通常是自增ID或类似的数据类型,能够均匀分布。 ##### 2.2 非主键索引 非主键索引通常指的是次级...

    mysql存储与索引技术

    MySQL 的索引分为两种主要类型:MyISAM 使用非聚集索引,索引与数据分开存储,而 InnoDB 使用聚集索引,索引和数据在同一结构中,因此 InnoDB 的索引支持更快的查找,但不支持全文检索。在索引优化方面,最左前缀...

    MySQL索引分析和优化.pdf

    2. **唯一性索引**:与普通索引类似,但要求索引列的值必须唯一。 - 创建唯一索引:`CREATE UNIQUE INDEX <索引名> ON tablename (列名列表);` - 修改表添加唯一索引:`ALTER TABLE tablename ADD UNIQUE [索引名]...

    MySQL索引优化课件

    总之,MySQL索引优化是一项涉及广泛的知识,包括但不限于索引类型选择、索引维护、存储过程和触发器的合理运用。通过深入学习和实践,我们可以有效地提升数据库的运行效率,确保系统的稳定和快速响应。这个课件...

    MySQL索引 使用笔记

    - 避免在索引列上使用NOT、!、、IS NULL、LIKE '%value%'等操作,这些会导致索引失效。 - 尽量让经常一起出现在`WHERE`子句中的列形成复合索引。 - 使用覆盖索引(Covering Index),使查询可以从索引中直接获取...

    mysql的索引优化

    2. **唯一性索引**:索引列的所有值都必须是唯一的。创建方式与普通索引类似,但需使用`UNIQUE`关键字: - 创建索引:`CREATE UNIQUE INDEX <索引名> ON 表名 (列名列表);` - 修改表添加索引:`ALTER TABLE 表名 ...

    MySQL索引面试题+索引优化+索引失效

    首先是选择合适的索引列,通常选择经常用于查询的列作为索引列,尽量避免使用长文本或二进制类型的列作为索引列。其次是合理设置索引的顺序,根据查询的频率和字段选择合适的索引顺序。此外,还可以考虑使用覆盖索引...

    mysql数据库以及索引详解.pptx

    - **唯一索引**:索引列的值必须是唯一的,但允许空值。 - **普通索引**:用表中的任意列构建的索引,无特殊限制。 - **全文索引**:适用于搜索大文本对象的索引。 - **组合索引**:基于多个列构建的索引,所有列值...

    mysql索引和锁机制ppt介绍

    ### MySQL索引和锁机制详解 #### 一、索引基础 **索引定义:** 索引是MySQL中用于提高查询效率的一种数据结构。通过索引可以在数据表中快速定位到所需的数据行,大大减少不必要的全表扫描。 **索引的重要性:** 1....

    MySQL索引分析和优化[定义].pdf

    如果索引列的值分布广泛(即不同的值很多),那么索引的选择性就高,查找特定值的效率也就更高。 7. **索引的维护**:虽然索引提高了查询性能,但也需要空间存储,并且在插入、更新和删除数据时需要维护。这可能...

    MYSQL索引知识

    - 唯一索引:索引列值必须唯一,允许空值。 - 主键索引:特殊的唯一索引,不允许空值。 - **组合索引**:基于多个字段创建的索引,查询时需从最左边的字段开始匹配。 - **全文索引**:仅在MyISAM引擎支持,...

    MySQL索引不会被用到的情况汇总

    MySQL中索引的类型 一般可分为四类: 普通索引:最普通的索引 唯一索引:索引列的值必须唯一,但允许有空值 主键索引:一种特殊的唯一索引,不允许有空值 联合索引:索引列有多个字段,使用时需要满足最左前缀...

Global site tag (gtag.js) - Google Analytics