当前位置:首页 > 技术分析 > 正文内容

[mysql查询优化]你需要知道的分区,提升查询效率的利器

ruisui884个月前 (02-03)技术分析36

背景

周末的一天早上,突然程序员李四收到了技术总监的一个电话:老板周末看BI数据,数据半天出不来,你赶紧优化下。老板今天约了投资方,要给投资方看数据,千万不能出现纰漏,你辛苦下紧急处理下。

李四揉了揉睡眼惺忪的眼睛,心中 一句:我靠,这个怎么偏偏周末出问题,先不想投资成功能不能加薪,要是投资不成功,可能连饭碗都不保。

李四分析了查询慢的原因后,结合老板需要查询最近几个月维度的数据后果断选择了一个提高查询性能的方法:分区

分区概念

将大表分成多个较小的物理部分,每个部分称为一个分区。目的是提高查询性能。

分区的类型

  1. 范围分区(Range Partitioning):根据某个列的值范围进行分区【比如日期】。
  2. 列表分区(List Partitioning):根据某个列的离散值进行分区【比如城市】。
  3. 哈希分区(Hash Partitioning):根据某个列的哈希值进行分区【比如ID】。
  4. 复合分区(Composite Partitioning):结合两种或多种分区方法,如范围分区和哈希分区。

分区的创建(MySQL为例)

分区表的维护

动态的添加和删除分区

查看分区

检验效果

分区前查询全表 1万多条数据

分区后只查询6个区域的5千多条数据

数据量越大效果越明显。

最后

希望大家在进行查询时,立马能想到用这个技能来优化查询。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1059.html

标签: 查询优化
分享给朋友:

“[mysql查询优化]你需要知道的分区,提升查询效率的利器” 的相关文章

2024前端面试真题之—VUE篇

添加图片注释,不超过 140 字(可选)1.vue的生命周期有哪些及每个生命周期做了什么? beforeCreate是new Vue()之后触发的第一个钩子,在当前阶段data、methods、computed以及watch上的数据和方法都不能被访问。 created在实例创建完成后发生,当前阶段已...

vue中如何在自定义组件上使用v-model和.sync

自定义事件tips推荐始终使用 kebab-case 的事件名。(v-on会将事件名自动转换为小写,避免匹配不到)changeData ×change-data √自定义组件的v-model用法:父组件定义数据源(不需要定义修改数据的方法),在子组件标签上通过v-model="data...

10个实例小练习,快速入门熟练 Vue3 核心新特性(一)

作者:xuying 全栈修炼转发链接:https://mp.weixin.qq.com/s/_n2seDbbiO5hXQfuUGbUCQ前言Vue3.0 发 beta 版都有一段时间了,正式版也不远了,所以真的要学习一下 Vue3.0 的语法了。本篇文章总共分两部分,望小伙伴们认真阅读。下一篇:10...

gitlab 分支保护设置

一、功能描述代码管理中管理,我们把稳定的分支设置为保护,可以防止其他人员误操作(例如删除,合并,推送代码等)。二、Gitlab配置步骤1 点击项目Repository标签2.点击Expand标签3.配置如下:默认master是被保护的,而且只有维护人员具有推送和合并权限。设置保护分支,这里的beta...

用IDEA开发如何用Git快速拉取指定分支代码?

1,准备空的文件夹,git init2,关联远程仓库,git remote add origin gitlab地址3,拉取远程分支代码,git pull origin 远程分支名再用IDEA打开项目即可...

编码 10000 个小时后,开发者悟了:“不要急于发布!”

【CSDN 编者按】在软件开发的道路上,时间是最好的老师。根据“一万小时定律”,要成为某个领域的专家,通常需要大约一万小时的刻意练习。本文作者身为一名程序员,也经历了一万小时的编程,最终悟出了一个道理:慢即是快,重视架构设计和代码质量,确保每一行代码都经得起时间的考验。作者 | Sotiris Ko...