当前位置: 首页 > news >正文

郑州 网站建设的公司成都手机网站建设哪

郑州 网站建设的公司,成都手机网站建设哪,php网站前后台源代码,建站快车管理前言mysql的索引合并并不是什么新特性。早在mysql5.0版本就已经实现。之所以还写这篇博文#xff0c;是因为好多人还一直保留着一条sql语句只能使用一个索引的错误观念。本文会通过一些示例来说明如何使用索引合并。什么是索引合并下面我们看下mysql文档中对索引合并的说明是因为好多人还一直保留着一条sql语句只能使用一个索引的错误观念。本文会通过一些示例来说明如何使用索引合并。什么是索引合并下面我们看下mysql文档中对索引合并的说明The Index Merge method is used to retrieve rows with several range scans and to merge their results into one. The merge can produce unions, intersections, or unions-of-intersections of its underlying scans. This access method merges index scans from a single table; it does not merge scans across multiple tables.根据官方文档中的说明我们可以了解到1、索引合并是把几个索引的范围扫描合并成一个索引。2、索引合并的时候会对索引进行并集交集或者先交集再并集操作以便合并成一个索引。3、这些需要合并的索引只能是一个表的。不能对多表进行索引合并。怎么确定使用了索引合并在使用explain对sql语句进行操作时如果使用了索引合并那么在输出内容的type列会显示 index_mergekey列会显示出所有使用的索引。如下使用索引合并的示例数据表结构mysql show create table test\G*************************** 1. row ***************************Table: testCreate Table: CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,key1_part1 int(11) NOT NULL DEFAULT 0,key1_part2 int(11) NOT NULL DEFAULT 0,key2_part1 int(11) NOT NULL DEFAULT 0,key2_part2 int(11) NOT NULL DEFAULT 0,PRIMARY KEY (id),KEY key1 (key1_part1,key1_part2),KEY key2 (key2_part1,key2_part2)) ENGINEMyISAM AUTO_INCREMENT18 DEFAULT CHARSETutf81 row in set (0.00 sec)数据mysql select * from test;----------------------------------------------------| id | key1_part1 | key1_part2 | key2_part1 | key2_part2 |----------------------------------------------------| 1 | 1 | 1 | 1 | 1 || 2 | 1 | 1 | 2 | 1 || 3 | 1 | 1 | 2 | 2 || 4 | 1 | 1 | 3 | 2 || 5 | 1 | 1 | 3 | 3 || 6 | 1 | 1 | 4 | 3 || 7 | 1 | 1 | 4 | 4 || 8 | 1 | 1 | 5 | 4 || 9 | 1 | 1 | 5 | 5 || 10 | 2 | 1 | 1 | 1 || 11 | 2 | 2 | 1 | 1 || 12 | 3 | 2 | 1 | 1 || 13 | 3 | 3 | 1 | 1 || 14 | 4 | 3 | 1 | 1 || 15 | 4 | 4 | 1 | 1 || 16 | 5 | 4 | 1 | 1 || 17 | 5 | 5 | 1 | 1 || 18 | 5 | 5 | 3 | 3 || 19 | 5 | 5 | 3 | 1 || 20 | 5 | 5 | 3 | 2 || 21 | 5 | 5 | 3 | 4 || 22 | 6 | 6 | 3 | 3 || 23 | 6 | 6 | 3 | 4 || 24 | 6 | 6 | 3 | 5 || 25 | 6 | 6 | 3 | 6 || 26 | 6 | 6 | 3 | 7 || 27 | 1 | 1 | 3 | 6 || 28 | 1 | 2 | 3 | 6 || 29 | 1 | 3 | 3 | 6 |----------------------------------------------------29 rows in set (0.00 sec)使用索引合并的案例mysql explain select * from test where (key1_part14 and key1_part24) or key2_part14\G*************************** 1. row ***************************id: 1select_type: SIMPLEtable: testtype: index_mergepossible_keys: key1,key2key: key1,key2key_len: 8,4ref: NULLrows: 3Extra: Using sort_union(key1,key2); Using where1 row in set (0.00 sec)未使用索引合并的案例mysql explain select * from test where (key1_part11 and key1_part21) or key2_part14\G*************************** 1. row ***************************id: 1select_type: SIMPLEtable: testtype: ALLpossible_keys: key1,key2key: NULLkey_len: NULLref: NULLrows: 29Extra: Using where1 row in set (0.00 sec)从上面的两个案例大家可以发现相同模式的sql语句可能有时能使用索引有时不能使用索引。是否能使用索引取决于mysql查询优化器对统计数据分析后是否认为使用索引更快。因此单纯的讨论一条sql是否可以使用索引有点片面还需要考虑数据。注意事项mysql5.6.7之前的版本遵守range优先的原则。也就是说当一个索引的一个连续段包含所有符合查询要求的数据时哪怕索引合并能提供效率也不再使用索引合并。举个例子mysql explain select * from test where (key1_part11 and key1_part21) and key2_part11\G*************************** 1. row ***************************id: 1select_type: SIMPLEtable: testtype: refpossible_keys: key1,key2key: key2key_len: 4ref: constrows: 9Extra: Using where1 row in set (0.00 sec)上面符合查询要求的结果只有一条而这一条记录被索引key2所包含。可以看到这条sql语句使用了key2索引。但是这个并不是最快的执行方式。其实把索引key1和索引key2进行索引合并取交集后就发现只有一条记录适合。应该查询效率会更快。tips这条sql语句未在mysql5.6.7之后版本执行验证以上为理论推导。有兴趣的话您可以到mysql5.6.7之后版本上验证下。觉得文章有用立即和朋友一起 共学习 共进步猜您喜欢
http://www.zqtcl.cn/news/939655/

相关文章:

  • 查企业年报的网站微商网站如何做
  • 做网站要了解的事情网站地图有什么作用
  • 企业网站asp源码怎么注册公司logo
  • 一个域名能同时做2个网站吗网站建设与维护的认识
  • 微信公众号怎么做网站链接ftp网站服务器
  • 免费舆情信息网站hao123主页
  • 网站空间不足wordpress最新编辑器怎么还原
  • 电信网站备案查询系统wordpress搜插件错误
  • 忻州企业网站建设房地产 网站 设计制作
  • 重庆水务建设项目集团网站中国十大公司排行榜
  • 做网站服务器需要系统app程序定制开发
  • 宁波网站推广营销公司wordpress插件转php
  • wordpress网站生成app应用制作广告的软件
  • 网站建设多久可以建成淘宝建设网站首页
  • 东营市做网站什么是网络营销道德
  • asp评价网站开发文档安卓软件app
  • phpcms旅游网站模板辽宁建设工程信息网开标大厅我的项目中没有显示
  • 深圳网站建设方维网络建设一个网站报价
  • 北京网站建设 案例邢台微商城制作设计
  • 网站开发一般都有系统wordpress评论优化
  • 网站建设找好景科技山东关键词网络推广
  • 网科创想网站管理外贸网站推广和建站
  • 唐山企业网站模板建站动物自己做的网站
  • 旅游攻略网站开发外包网站开发公司
  • 免得做网站wordpress国内主机
  • 绍兴网站建设方案报价朗格手表网站
  • 建立自己公司网站的方法南京网站制作多少钱
  • 字形分析网站做自媒体查找素材的网站
  • 做网站建设的上市公司有哪些网站源码怎么预览
  • 怎么学做电子商务网站知果果网站谁做的