我相信这是因为MySQL不支持合并空间索引.不知道如果它仍然是真的,但我已经读过它在过去的某个地方.如果您有OR语句,则不使用空间索引

在你的情况下,你在做什么point.id = 1,这是一个直接选择,一个返回的结果被用于mbrcontains.这使用索引.

当你添加point.in(1,2,3),它返回3个结果,每个需要映射到范围表,因此不起作用

结果

id select_type table type possible_keys key key_len ref rows filtered Extra

1 SIMPLE points range PRIMARY PRIMARY 4 NULL 3 100.00 Using where

1 SIMPLE ranges ALL poly NULL NULL NULL 6467418 100.00

您可以通过执行以下操作来简化测试:SELECT * FROM范围,其中mbrcontains(poly,GEOMFROMWKB(POINT(0,0)))

id select_type table type possible_keys key key_len ref rows filtered Extra

1 SIMPLE ranges range poly poly 34 NULL 1 100.00 Using where

现在这个SELECT * FROM范围,其中mbrcontains(poly,GEOMFROMWKB(POINT(0,0)))或mbrcontains(poly,GEOMFROMWKB(POINT(10,10)))

结果

id select_type table type possible_keys key key_len ref rows filtered Extra

1 SIMPLE ranges ALL poly NULL NULL NULL 6467418 100.00 Using where

看到在第二种情况下,你不使用索引,只是扫描.

您可以通过为每个特定点创建UNION来强制查询使用索引,但我不知道这是否会更快.我在本地做了一些测试,它比你的第一个查询慢一点.

EXPLAIN EXTENDED

SELECT *

FROM points

FORCE INDEX (PRIMARY )

LEFT JOIN ranges

FORCE INDEX ( poly ) ON mbrcontains( poly, point )

WHERE points.id = 1

UNION DISTINCT

SELECT *

FROM points

FORCE INDEX (PRIMARY )

LEFT JOIN ranges

FORCE INDEX ( poly ) ON mbrcontains( poly, point )

WHERE points.id = 2

UNION DISTINCT

SELECT *

FROM points

FORCE INDEX (PRIMARY )

LEFT JOIN ranges

FORCE INDEX ( poly ) ON mbrcontains( poly, point )

WHERE points.id = 3

结果

id select_type table type possible_keys key key_len ref rows filtered Extra

1 PRIMARY points const PRIMARY PRIMARY 4 const 1 100.00

1 PRIMARY ranges range poly poly 34 NULL 1 100.00 Using where

2 UNION points const PRIMARY PRIMARY 4 const 1 100.00

2 UNION ranges range poly poly 34 NULL 1 100.00 Using where

3 UNION points const PRIMARY PRIMARY 4 const 1 100.00

3 UNION ranges range poly poly 34 NULL 1 100.00 Using where

NULL UNION RESULT ALL NULL NULL NULL NULL NULL NULL

mysql索引空间配置_加入空间mysql索引相关推荐

  1. windows mysql主主配置_基于docker MySQL数据库主主同步配置(windows上)

    安装docker部分 坑点 docker拉镜像速度过慢 点击docker图标,点击邮件看到setting,setting界面上点击docker engine,配置如图所示 还有两个备用的镜像地址 &q ...

  2. 剖析SGI STL空间配置器(空间配置器的重要性和重要成员及函数)

    剖析SGI STL空间配置器 在我们使用STL容器的时候,模板最后一个参数会有一个默认的allocator作为容器模板的参数,这个参数就是STL的空间配置器.容器的空间配置器见这篇文章:容器空间配置器 ...

  3. mysql表空间大小_浅谈mysql中各种表空间(tablespaces)的概念

    mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一 ...

  4. mysql安装完后不能配置_安装完 MySQL 后必须调整的 10 项配置

    (www.hackbase.com 黑基网)当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议.许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即 ...

  5. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析

    今天我们来讲讲如何优化MySQL的性能,主要从索引方面优化. 建表 //建表 CREATETABLEIFNOTEXISTSstaffs( idINTPRIMARYKEYAUTO_INCREMENT, ...

  6. mysql slave 详细配置_进击的MysqlSlave环境搭建及配置

    一)环境拓扑今天讨论的是mysql集群这一块,资源如下所示:二)Mysql安装配置这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文"懒人"速成 一)环境拓扑 二) ...

  7. mysql 分组占比_含泪整理MySQL索引

    索引优化分析 性能下降SQL慢 查询语句写的差 索引失效 单值索引 多值索引 关联查询太多join(设计缺陷或不得已的需求) 服务器调优以及各个参数设置(缓冲.线程数等) 执行时间长 等待时间长 常见 ...

  8. MySQL 怎么变快_如何让mysql索引更快一点

    在 InnoDB 中,从二级索引回到主键索引查询数据,这个过程称作回表过程,而且这个回表过程是可以被优化的,这个优化就是利用覆盖索引. 先说结论,如果一个索引的字段包含了所有要查询的字段,这个索引就称 ...

  9. mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事

    引言 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构对比 二叉树 左边子节点的数据小于父节点数据,右边子节点的数据大于父节点数据.如果col2是索引,查找索引为89的行元素,那么只需 ...

最新文章

  1. 图论 + 并查集 ----最小生成树重构图 + 可撤销并查集 + set启发式合并 时间线上的离线求解 D. Graph and Queries
  2. 成功解决没有tf.nn.rnn_cell属性
  3. win10 如何配置 java jdk1.8环境变量(2017.8.17 )jdk1.8.0_144
  4. 【POJ - 2942】Knights of the Round Table(点双连通分量,二分图判断奇环奇圈)
  5. python整数作为条件_Python基本概念介绍
  6. Java中od方向是什么意思_od的用法
  7. DB2 SQLCODE 异常大全编辑(一)
  8. Python写一个简单的贪吃蛇程序
  9. jsoniter与原生json对比
  10. 计算机网络常见面试题总结
  11. Docker部署应用案例
  12. 大数据基础概念(三)
  13. python barplot宽度,如何在seaborn barplot上设置宽度
  14. 谷粒商城简介(1~5集)
  15. 小猫爬山(DFS+剪枝)
  16. html语言设置网页背景,在html网页中如何设置背景图片?网页背景怎么设置?
  17. (亲测可用)如何在Win10家庭版中找回组策略编辑器
  18. Java到底好不好学
  19. ubuntu18.04系统安装+基本环境配置【原创】
  20. “游方之旅”的纯美爱情

热门文章

  1. Go Time常用语法
  2. 理解tcp关闭连接中的time_wait状态
  3. HTTP-FLV的两种方式
  4. 数据存储四种常见方式
  5. 一张图看懂小程序全生态
  6. GraphQL第一个例子
  7. 深入理解golang的defer
  8. 真正理解红黑树,真正的
  9. 连接池,数据库连接池
  10. springcloud 03_SpringCloud概述