mysql索引空间配置_加入空间mysql索引
我相信这是因为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索引相关推荐
- windows mysql主主配置_基于docker MySQL数据库主主同步配置(windows上)
安装docker部分 坑点 docker拉镜像速度过慢 点击docker图标,点击邮件看到setting,setting界面上点击docker engine,配置如图所示 还有两个备用的镜像地址 &q ...
- 剖析SGI STL空间配置器(空间配置器的重要性和重要成员及函数)
剖析SGI STL空间配置器 在我们使用STL容器的时候,模板最后一个参数会有一个默认的allocator作为容器模板的参数,这个参数就是STL的空间配置器.容器的空间配置器见这篇文章:容器空间配置器 ...
- mysql表空间大小_浅谈mysql中各种表空间(tablespaces)的概念
mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一 ...
- mysql安装完后不能配置_安装完 MySQL 后必须调整的 10 项配置
(www.hackbase.com 黑基网)当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议.许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即 ...
- Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析
今天我们来讲讲如何优化MySQL的性能,主要从索引方面优化. 建表 //建表 CREATETABLEIFNOTEXISTSstaffs( idINTPRIMARYKEYAUTO_INCREMENT, ...
- mysql slave 详细配置_进击的MysqlSlave环境搭建及配置
一)环境拓扑今天讨论的是mysql集群这一块,资源如下所示:二)Mysql安装配置这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文"懒人"速成 一)环境拓扑 二) ...
- mysql 分组占比_含泪整理MySQL索引
索引优化分析 性能下降SQL慢 查询语句写的差 索引失效 单值索引 多值索引 关联查询太多join(设计缺陷或不得已的需求) 服务器调优以及各个参数设置(缓冲.线程数等) 执行时间长 等待时间长 常见 ...
- MySQL 怎么变快_如何让mysql索引更快一点
在 InnoDB 中,从二级索引回到主键索引查询数据,这个过程称作回表过程,而且这个回表过程是可以被优化的,这个优化就是利用覆盖索引. 先说结论,如果一个索引的字段包含了所有要查询的字段,这个索引就称 ...
- mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事
引言 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构对比 二叉树 左边子节点的数据小于父节点数据,右边子节点的数据大于父节点数据.如果col2是索引,查找索引为89的行元素,那么只需 ...
最新文章
- 图论 + 并查集 ----最小生成树重构图 + 可撤销并查集 + set启发式合并 时间线上的离线求解 D. Graph and Queries
- 成功解决没有tf.nn.rnn_cell属性
- win10 如何配置 java jdk1.8环境变量(2017.8.17 )jdk1.8.0_144
- 【POJ - 2942】Knights of the Round Table(点双连通分量,二分图判断奇环奇圈)
- python整数作为条件_Python基本概念介绍
- Java中od方向是什么意思_od的用法
- DB2 SQLCODE 异常大全编辑(一)
- Python写一个简单的贪吃蛇程序
- jsoniter与原生json对比
- 计算机网络常见面试题总结
- Docker部署应用案例
- 大数据基础概念(三)
- python barplot宽度,如何在seaborn barplot上设置宽度
- 谷粒商城简介(1~5集)
- 小猫爬山(DFS+剪枝)
- html语言设置网页背景,在html网页中如何设置背景图片?网页背景怎么设置?
- (亲测可用)如何在Win10家庭版中找回组策略编辑器
- Java到底好不好学
- ubuntu18.04系统安装+基本环境配置【原创】
- “游方之旅”的纯美爱情