精华内容
下载资源
问答
  • 转载自随心2017的博客 ...你创建一 组合索引 ( 班级, 姓名) 那么 SELECT * FROM 学生表 WHERE 班级='2010级3班' AND 姓名='张三' 将使用索引. SELECT * FROM 学生表 WHERE 班级='2010级3班' 将使用索引...

    转载自随心2017的博客

    聚合索引

    例如你有一个 学生表。

    字段包含 学号, 班级, 姓名,性别, 出生年月日。

    你创建一个 组合索引 ( 班级, 姓名)

    那么

    SELECT * FROM  学生表  WHERE  班级='2010级3班'  AND  姓名='张三' 
    

    将使用索引.

    SELECT * FROM  学生表  WHERE  班级='2010级3班'      
    

    将使用索引 .

    SELECT * FROM  学生表  WHERE  姓名='张三'     
    

    将不使用索引。

    单独索引

    删除掉上面的索引

    再创建两个 独立索引

    索引1 ( 班级)

    索引2 ( 姓名)

    那么

    SELECT * FROM  学生表  WHERE  班级='2010级3班'  AND  姓名='张三'  
    

    将根据数据库的分析信息, 自动选择使用索引1或者索引2中的一个 (理论上会使用 索引2, 因为 姓名=张三的人少, 优先找到所有 姓名为 张三的人以后, 然后再从这些数据中, 找班级 = ‘2010级3班’ 的

    SELECT * FROM  学生表  WHERE  班级='2010级3班'      
    

    将使用索引1 .

    SELECT * FROM  学生表  WHERE  姓名='张三'     
    

    将使用索引2。

    总结

    组合索引是组合条件查询时有条件查询的顺序很重要,

    展开全文
  • 性别字段建立索引问题

    万次阅读 2018-09-25 18:32:35
    性别字段能不能建立索引 之前面试被问到一问题 ...如:我建了tb_test表,往里面插入了七百万数据,先给性别建立索引,查询开启 sql运行时间记录。 创建名为tb_index_test 的索引 alter ta...

    性别字段能不能建立索引

    之前面试被问到一个问题

    什么字段适合建索引,什么字段不适合建索引。

    性别字段可以建索引吗?

    我回答得不是很好。

    性别字段这种重复性很强的字段,不要建立索引。为什么不能呢?

    下面建立表测试下。如:我建了个tb_test表,往里面插入了七百多万数据,先给性别建立索引,查询开启 sql运行时间记录。

    创建名为tb_index_test  的索引

    alter table tb_test add index tb_index_test(genenre)
    # 开启时间记录
    set profiling = 1;

    查询genenre=1 的数据;

    select * from tb_test where genenre=1;

    删除索引

    # 查看tb_test表的索引
    show index from tb_test;
    # 删除索引
    drop index tb_test_index on tb_test;

    在次查询genenre=1 的数据

    select * from tb_test where genenre=1;

    查看以上几个命令的执行时间

    show profiles;
    

    结果如下

    添加索引后查询 比原来为添加索引还慢

    添加索引 的查询耗时为 64.5秒

    没有索引的查询耗时为 7.8秒

    结论是 重复性较强的字段,不适合添加索引

    mark222

    展开全文
  • MySQL给表里的某个字段建立索引

    千次阅读 2019-04-15 15:29:41
    注:`table_name` 和 `column` 中的``是Esc下方的一键 ~`,可省略不写``,直接写表名和字段名 1.添加PRIMARY KEY(主键索引): ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引)...

    注:`table_name`   `column` 中的``Esc下方的一个键 ~`,可省略不写``,直接写表名和字段名

    1.添加PRIMARY KEY(主键索引):

    ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

    2.添加UNIQUE(唯一索引) :

    ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 

     

    3.添加INDEX(普通索引) :

    写法一:ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

    写法二:CREATE INDEX index_name ON `table_name`(`column1`,`column2`,`column3`) 

    4.添加FULLTEXT(全文索引) :

    ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

     

    5.添加多列索引:

    写法一:ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

    写法二:CREATE INDEX index_name ON `table_name`(`column1`,`column2`,`column3`)

     

    SHOW INDEX FROM `table_name`;-- 查询表索引

    DROP INDEX index_name ON `table_name`;-- 删除索引

    展开全文
  • sql 两个字段建立唯一索引

    千次阅读 2019-06-06 16:44:56
    同表两个字段建立唯一索引 业务上需要一个身份证账号对应一个手机号,所以在数据库中使用到了唯一索引的概念 unique 唯一索引 索引存储方式可选be树和哈希类型 be树适合有从属关系,并且能从父级找到其下子数据的...

    同表两个字段建立唯一索引

    业务上需要一个身份证账号对应一个手机号,所以在数据库中使用到了唯一索引的概念

    unique 唯一索引

    索引存储方式可选be树和哈希类型
    be树适合有从属关系,并且能从父级找到其下子数据的情况
    哈希类型适合唯一对应

    在这里插入图片描述
    如果在插入时报错 可在sql语句中加入 INGNORE 来忽略提示,从而达到插入的目的

    展开全文
  • 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细分析...
  • Mysql哪些字段适合建立索引

    万次阅读 2020-06-26 21:34:19
    1 数据库建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引;...B 、复合索引的几个字段是否经常同时以AND
  • 哪些字段适合建立索引

    千次阅读 2018-07-26 23:17:40
    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细分析...
  • MySQL两个字段建立索引 使用情况

    千次阅读 2020-07-26 17:58:25
    做为一开发者,关于MySQL的索引是必不可少的一问题 比如一条SQL查询: select * from userstatic where nick like "辛巴%" and rip=3726854906; 可能问到的问题有: 1、如果nick不是索引,rip是索引,这样...
  • 对实体类的的多个字段建立唯一索引,达到复合主键的效果 package com.sxd.swapping.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; /** * 多个字段 key2 和key...
  • oracle中多个字段组成唯一索引约束

    千次阅读 2018-11-26 18:59:02
    已经验证!!!欢迎相互学习交流 --原来EXPENSE_ITEM_CODE, EXPENSE_TYPE_CODE, EXP_REPORT_TYPE_CODE这三个为唯一索引...注意事项(报错dupplicate keys found,若表中要创建的唯一索引约束的四个字段在数据库该表...
  • 在网上看到oracle全文索引都是对一张表一个字段进行全文检索,我想对多个表多个字段按照关键字的匹配度排序,sql语句如下 select score(1) ,score(2), CDA.AREANAME,CDS.STREETNAME from C_DICT_STREET cds
  • mysql多字段唯一索引

    千次阅读 2018-07-27 16:58:00
    项目中需要用到联合...例如:user表中有userID,userName两个字段,如果不希望有2条一模一样的记录,需要给user表添加多个字段的联合唯一索引: alter table user add nuique index(user_id,user_name); 例如: alte...
  • MySQL如何建立JSON字段索引

    千次阅读 2019-03-27 16:29:15
    概述 MySQL从5.7.8起开始支持JSON字段,这极大的丰富了...但MySQL并没有提供对JSON对象中的字段进行索引的功能,至少没有直接对其字段进行索引的方法。本文将介绍利用MySQL 5.7中的虚拟字段的功能来对JSON对象中...
  • 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行...
  • 这两天有一任务表 t_task_list ,搜索条件下面都有,相关的索引也有,但就是用不到索引,应该是跟数据分布有关,所以对索引做了调整。 最重要的不是对索引做了调整,而是,不要以为建了索引就一定能用到,还是...
  • 对数据库索引的理解及适合建立索引字段

    万次阅读 多人点赞 2018-03-06 13:17:43
    转载深入浅出数据库索引原理,哪些字段适合建立索引 问题 为什么要给表加上主键? 为什么加索引后会使查询变快? 为什么加索引后会使写入、修改、删除变慢? 什么情况下要同时在两个字段上建索引? 这些问题...
  • 索引前缀是复合索引的子集,例如:如下的符合索引: { "item": 1, "location...对于一复合索引,MongoDB可以使用索引前缀作为索引去查询数据库,例如:MongoDB可以使用索引查询如下字段: item字段 item字段和loca
  • sql 表中同一个字段已经创建了单字段索引还能在字段创建组合索引吗?
  • PostgreSql索引的使用3--多字段索引

    千次阅读 2015-05-19 10:10:38
    多字段索引就是索引中的字段不是一,其创建的方式与单字段索引的语法一致。 如:create index idx_name on tanle_name(column_name1,column_name2);  多字段索引只适合B-tree, GiST 和 GIN三种索引方式,并且...
  • 多个条件的查询建立索引

    千次阅读 2017-01-19 09:57:26
    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 216,910
精华内容 86,764
关键字:

多个字段建立索引