有关MYSQL'索引的一个问题

问题描述

在MySQL下创建表:CREATETABLEtest(idINTNOTNULL,last_nameCHAR(30)NOTNULL,first_nameCHAR(30)NOTNULL,PRIMARYKEY(id),INDEXname(last_name,first_name));CREATETABLEtest(idINTNOTNULL,last_nameCHAR(30)NOTNULL,first_nameCHAR(30)NOTNULL,PRIMARYKEY(id),INDEXname(last_name,first_name));以下语句是否会用到name索引?SELECT*FROMtestWHERElast_name='Widenius';SELECT*FROMtestWHERElast_name='Widenius'ANDfirst_name='Michael';SELECT*FROMtestWHERElast_name='Widenius'AND(first_name='Michael'ORfirst_name='Monty');SELECT*FROMtestWHERElast_name='Widenius'ANDfirst_name>='M'ANDfirst_name<'N';SELECT*FROMtestWHEREfirst_name='Michael';SELECT*FROMtestWHERElast_name='Widenius'ORfirst_name='Michael';

解决方案

解决方案二:
你explain下就知道了

时间: 2025-01-17 19:33:28

有关MYSQL&amp;#x27;索引的一个问题的相关文章

Mysql技巧之索引分析和优化

mysql|技巧|索引|优化     索引用来快速地寻找那有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为people的表: CREATE TABLE pe

mysql中字符串索引问题与例子

  字符串索引与数字索引有一些方面如果没做好会非常的慢了,今天我们就一起来看看小编整理的一些mysql中字符串索引问题与例子了,因为字符索引相对来说也简单文章就简单的整理了一些例子,希望对各位有帮助. 事情的起因是线上日志发现的mysql慢查询.100万数据量的标准,联合查询全部走索引的情况下,尽然要600多毫秒.很不解,但是将索引列由varchar(50)型改为bigint型后,数据提升了30倍.究其原因就索引树上搜索时要进行大量的比较操作,而字符串的比较比整数的比较耗时的多. 所以建议一般情

MySQL建立唯一索引实现插入重复自动更新_Mysql

前言 在我们往数据库插入数据的时候,需要判断某个字段是否存在,如果存在则执行更新操作,如果不存在则执行插入操作,如果每次首先查询一次判断是否存在,再执行插入或者更新操作,就十分不方便.下面给大家分享个方法,方便大家实现这一功能,下面来一起看看吧. ON DUPLICATE KEY UPDATE 这个时候可以给这个字段(或者几个字段)建立唯一索引,同时使用以下 sql 语句进行插入或更新操作: INSERT INTO table (id, user_id, token) VALUES (NULL,

MySQL和Lucene索引对比分析

MySQL和Lucene都可以对数据构建索引并通过索引查询数据,一个是关系型数据库,一个是构建搜索引擎(Solr.ElasticSearch)的核心类库.两者的索引(index)有什么区别呢?以前写过一篇<Solr与MySQL查询性能对比>,只是简单的对比了下查询性能,对于内部原理却没有解释,本文简单分析下两者的索引区别. MySQL索引实现 在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式. M

MySQL Order By索引优化方法_Mysql

尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了. 使用索引的MySQL Order By 下列的几个查询都会使用索引来解决 ORDER BY 或 GROUP BY 部分: 复制代码 代码如下: SELECT * FROM t1 ORDER BY key_part1,key_part2,... ; SELECT * FROM t1 WHERE key_part1=constant ORD

MySQL中利用索引对数据进行排序的基础教程_Mysql

MySQL中,有两种方式生成有序结果集:一是使用filesort,二是按索引顺序扫描.利用索引进行排序操作是非常快的,而且可以利用同一索引同时进行查找和排序操作.当索引的顺序与ORDER BY中的列顺序相同且所有的列是同一方向(全部升序或者全部降序)时,可以使用索引来排序.如果查询是连接多个表,仅当ORDER BY中的所有列都是第一个表的列时才会使用索引.其它情况都会使用filesort. MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度.

MySQL中对于索引的基本增删查改操作总结_Mysql

创建索引 MySQL创建索引的语法如下: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...) 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL] 中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引.全文索引.空间索引三种不同的索引类型.如果我们不指定任何关键字,则默认为普通索引. index_name

mysql数据库中索引查看建立删除的sql语句

本文介绍如何用sql语句建立.查看.删除mysql表索引. 1.查看哪些表增加了索引sql语句  代码如下 复制代码 mysql> show index from tblname; mysql> show keys from tblname; 比如执行"show index from v9_danji"这条sql语句,查看v9_danji这张表建立了哪些索引,会出来如下结果,可以看到索引的名称和索引的类型等. 查看表索引sql 2.给表某个字段添加索引sql语句    代码

MySQL中的索引

MySQL中的索引 作者:Jason Lee @http://blog.csdn.net/jasonblog 日期:2010-06-04 声明:本文发表在csdn博客,如有转载,请注明出处   [引言] 如图书馆等存放大量数据的场合都需要设置索引以方便检索.当数据库中存储的记录逐渐海量化的时候,合理地采用索引能大大改善程序性能.   [使用索引] 首先,创建一个用于测试的表: CREATE TABLE`test`.`books` ( `id` INT NOT NULLAUTO_INCREMENT