数据库建立索引以及索引失效问题
操作数据库索引能起到优化数据库查询,提高查询效率的作用。并且对也稍微大一点的数据量的服务来说,索引的创建是必须的,也是关键的。但是索引也要合理应用,不要遇到查询就建索引,也不能乱建。如果造成索引失效那还不如不建。索引失效有的时候是因为自己的语句问题造成的。下面是几种造成索引失效的几种原因,
一、以下的方法会引起索引失效
1,<>
2,单独的>,<,(有时会用到,有时不会)
3,like "%_" 百分号在前.
4,表没分析.
5,单独引用复合索引里非第一位置的索引列.
6,字符型字段为数字时在where条件里不添加引号.
7,对索引列进行运算.需要建立函数索引.
8,not in ,not exist.
9,当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况。
10, 索引失效。
11,基于cost成本分析(oracle因为走全表成本会更小):查询小表,或者返回值大概在10%以上
12,有时都考虑到了 但就是不走索引,drop了从建试试在
13,B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null 都会走
14,联合索引 is not null 只要在建立的索引列(不分先后)都会走,
in null时 必须要和建立索引第一列一起使用,当建立索引第一位置条件是is null 时,其他建立索引的列可以是is null(但必须在所有列都满足is null的时候),或者=一个值;
当建立索引的第一位置是=一个值时,其他索引列可以是任何情况(包括is null =一个值),以上两种情况索引都会走。其他情况不会走。
强制使用索引
mysql常用的hint
对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。
强制索引 FORCE INDEX
以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。
忽略索引 IGNORE INDEX
数据库建立索引以及索引失效问题相关推荐
- 数据库mysql建立索引_为mysql数据库建立索引
前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...
- [转]为mysql数据库建立索引
前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...
- 为mysql数据库建立索引
前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...
- MySQL数据库索引的类型、命名规范、建立原则以及索引失效的情况
本篇中记录下数据库索引相关的知识点! 索引是什么? 举个例子:大家去图书馆借书时,会先在电脑检索书名或作者等关键字信息,查询出该本书对应的一个图书索引后,紧接着就可以拿着这个图书索引去精确定位存放该索 ...
- 数据库索引为什么会失效
本文来说下数据库的索引为什么会失效,本文以MySQL为例来说明下这个问题 文章目录 MySQL数据是如何存储的 聚集索引 非聚集索引 联合索引/索引覆盖 索引下推 最左前缀原则 加速查询 加速排序 联 ...
- 数据库建立索引怎么利用索引查询
数据库建立索引怎么利用索引查询? 精选 1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率.现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构. 索引的使用要恰 ...
- 数据库建立索引常用的规则
数据库建立索引常用的规则如下: 查看全文 http://www.taodudu.cc/news/show-3587136.html 相关文章: hive中如何建立索引 oracle数据库分区表建立索引 ...
- 数据库建表规约,索引创建及失效分析
文章目录 1. 建表规约 2. 索引规约 3. SQL 规约 1. 建表规约 1.1 表达是否概念的字段,使用 is_xxx 的方式命名,数据类型为 unsigned tinyint: 1.2 表名. ...
- 数据库建立索引、数据表创建规则、备用字段 / 保留字段 / 预留字段
数据库建立索引 数据库.数据表建立索引的原则 数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作. 2,尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在w ...
- 带你了解什么是MySQL数据库(六)索引原理,如何建立与使用索引
文章目录 前言 索引原理 介绍 查找二叉树.平衡二叉树.B树.B+树 聚集索引与非聚集索引 索引管理 测试索引 正确使用索引 联合索引 索引下推技术 索引优化神器 常见慢查询优化 前言 学习过某一门编 ...
最新文章
- mac上安装python详细教程_mac安装python环境
- Day 15:Meteor —— 从零开始创建一个 Web 应用
- C语言读入文件全部内容的方法
- ionic1 打包过程 常用命令行
- 怎样安装python在桌面_在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程...
- TabControl与UserControl合伙吃内存
- 【python教程入门学习】python基础语法
- linux下weblogic12c建域,三、WebLogic 12C集群部署-创建域
- 服务器上使用mysql_在服务器上安装、使用MySQL的注意事项
- 区别对待 【找到问题发生的原因】 以及 【关于这个问题的 「正确可行」 的解决方法】
- 3. Ubuntu LAMP 环境搭建
- AI人工智能简史-人工智能与炼金术
- Python数据分析师特训营84节
- 发那科冲压直线搬运机器人_发那科直线七轴软件配置
- eclipse不自动弹出提示
- 深度强化学习-策略梯度算法推导
- IIS 配置网站出现500内部服务器错误,显示具体错误信息
- P4167 [Violet]樱花
- 春考计算机组装维修知识点,山东春考计算机组装及维修模拟题.docx
- 多个视频合成一个视频(带合成工具)