位置: 编程技术 - 正文

mysql 索引详细介绍(mysql索引实战)

编辑:rootadmin

推荐整理分享mysql 索引详细介绍(mysql索引实战),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql 索引技巧,mysql索引是干嘛的,mysql索引详解,mysql索引方式有哪些,mysql索引的使用和原理,mysql索引详解,mysql索引的使用和原理,mysql索引详解,内容如对您有帮助,希望把文章链接给更多的朋友!

mysql 索引详解:

在mysql 中,索引可以分为两种类型 hash索引和 btree索引。

什么情况下可以用到B树索引?

1.全值匹配索引

比如:

orderID="”

2.匹配最左前缀索引查询

比如:在userid 和 date字段上创建联合索引。

那么如果输入 userId作为条件,那么这个userid可以使用到索引,如果直接输入 date作为条件,那么将不能使用到索引。

3.匹配列前缀查询

比如: order_sn like ‘%' 这样可以使用到索引。

4.匹配范围值查询

createTime>'--' and createTime<'--'

5.精确匹配左前列并范围匹配另外一列

比如:

userId=1 and createTime>'-9-'

6.只访问索引的查询,称为覆盖索引,及索引包括查询列的数据。

BTREE索引的限制

1.如果不是按照索引的最左列开始查找,则无法使用索引。

比如创建联合索引:

orderId ,createTime 字段创建联合索引,如果只是输入 createTIme的条件,没有orderid的条件,那么将不能使用此索引。

2.使用索引时不能跳过索引的列。

三列:

日期,姓名,电话 组成列和索引,如果查询时 只输入 日期 和电话,那么只能使用日期作为索引进行过滤。

3.NOT IN 和 <> 操作无法使用索引。

4.如果查询中有某个列的范围查询,则其右边所有列都无法使用索引。

hash 索引的特点

hash索引是基于hash表实现的,只有查询条件精确匹配hash 索引中的所有列时,才能使用hash索引。只能是等值查询。

对于hash索引中的所有列,存储引擎都会为每一行计算一个hash码,hash索引中存储的就是hash码。

mysql 索引详细介绍(mysql索引实战)

限制:

1.必须两次读取,先读取hash 找到对应的行,再读取对应的行数据。

2.hash索引无法用于排序。

3.只支持精确查找,不支持部分索引查找,也不支持范围查找。

hash冲突:

hash 索引不能使用于选择性很差的字段,而要用在比如 选择性强的列上创建hash索引。

比如:不要在性别字段上创建hash索引。

为什么要使用索引?

1.索引大大减少存储引擎需要扫描的数据量。索引小于数据大小。

2.索引可以帮助我们进行排序以避免使用临时表。索引是有顺序的。

3.索引可以把随机的I/0 变为 顺序的IO

索引是不是越多越好?

1.索引会增加写操作的成本

2.太多的索引会增加查询优化器和选择时间。

建立索引的策略

1.索引列上不能使用表达式或函数

比如:

select * from product where to_days(out_date) ?to_days(current_date)<=,out_date为索引列。

改成:

select* from product where out_date<date_add(current_date,interval day)

2.索引大小不能超过一定值。

inodb 索引列 大小为 个长度。

3.前缀和索引列的选择性。

create index idx_NAME on table (account);

4.联合索引

如何选择索引列的顺序。

1.经常会被索引的列。

2.选择性高的里的列的优先。

3.对小的列创建索引。

感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!

mysql 存储过程详解 MySQL存储过程.1.1创建存储过程MySQL中,创建存储过程的基本形式如下:CREATEPROCEDUREsp_name([proc_parameter[,...]])[characteristic...]routine_body其中,sp_name参数是存

JDBC 连接MySQL实例详解 JDBC连接MySQLJDBC连接MySQL加载及注册JDBC驱动程序Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.jdbc.Driver").newInstance();JDBCURL定义驱动程序与数据源之间的

Mysql精粹系列(精粹) 关于Mysql整理的需要记忆和熟练掌握的内容1./*查看操作*/-------------------------------------------------------------------------------------------------------1./*查看操作*/SHOWP

标签: mysql索引实战

本文链接地址:https://www.jiuchutong.com/biancheng/348620.html 转载请保留说明!

上一篇:MySQL截取和拆分字符串函数用法示例(mysql按字节截取)

下一篇:mysql 存储过程详解(mysql 存储过程存放在哪里)

  • 联通的话费能干吗
  • 本月发生费用未支付会计处理
  • 差旅费计入工资成本吗
  • 增值税普通发票和专用发票有什么区别
  • 固定资产报废电脑
  • 信用减值损失借贷方表示什么意思
  • 报税利润表的第二季度本期金额本年累计金额是什么
  • 季报现金流量表是必报表吗
  • 非同一控制下的企业合并采用成本法
  • 救护车能随便买吗
  • 高危行业企业安全费用提取
  • 兼营行为税务处理例子
  • 未开票收入已报税怎么办
  • 企业转企业对公账户
  • 个人独资企业是一般纳税人吗
  • 劳务费发票是几个点的税率
  • 哪些公司可以开咨询费发票
  • 对公账户提取备用金可以每天提现嘛
  • 简述增值税纳税义务发生时间
  • 分公司收到总公司拨款怎么做分录
  • 外国人可以参加中国境内的党派或政治团体
  • 金银制成的金银币及摆件是否征收消费税?
  • 路由器网速太慢了怎么回事
  • php核心编程
  • php数组有哪几种类型
  • 废品损失属于产品生产成本吗
  • 结转销售原材料会计分录
  • 未按规定开具发票怎么处罚
  • 沃特金斯格伦州立公园
  • 特卡波小镇旅游攻略
  • laravel 更新数据
  • vuejs性能
  • 税金及附加在哪里申报
  • 收到待报解预算收入怎么做分录
  • 交印花税的口诀
  • 对供应商的罚款通知怎么写
  • 河北汽车购置税税率
  • 增值税申报销项发票采集少了怎么办
  • 小规模纳税人代收水电费税率
  • 退休认证在网上怎么操作
  • 企业所得税如何征收
  • 支付给租户的装修押金
  • 金融债券利息收入免企业所得税吗
  • 减值准备对当期损益的影响
  • 物流费用怎么算一般多少
  • 金税盘税务申报流程
  • 金税四期监控银行卡
  • 什么是住房补贴,住房补贴如何办理?
  • 增值税一般纳税人是什么意思
  • 出口收入没有及时申报怎么处罚
  • 企业营改增税率是多少
  • 长期挂账的往来款税务处理
  • 票折费用是什么意思
  • 增值税销项抵扣报税后有效期是多长时间
  • 可转债举例说明
  • 销售如果对待不同客户
  • 设备5年直线法计提折旧怎么做?
  • 纳税申报表中的销售额
  • 哪个行业的会计最难
  • MySql insert插入操作的3个小技巧分享
  • 科普知识手抄报简单又漂亮
  • 桌面上的软件是什么
  • linux常用命令 删除
  • Windowsxp桌面没有图标怎么办
  • macbook 如何设置safari的搜索引擎
  • 日亚海淘官网
  • jquery easyui开发指南
  • 利用JQuery实现datatables插件的增加和删除行功能
  • python干嘛用
  • 计算字符串的长度使用哪个函数?
  • javascript教程chm
  • shell脚本编程实例
  • Python 安装模块
  • jquery trigger实现联动的方法
  • 安卓获取图片路径
  • 企业科研经费管理制度
  • 增值税发票打印机怎么连接电脑
  • 国家税务总局好进吗
  • 扬州国家税务学院在哪个区
  • 国税稽查局查账单凭个人流水能不能当做证据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设