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

mysql中的索引和分区

目录

1.编写目的

2.索引

2.1 创建方法

2.2 最佳适用

2.3 索引相关语句

3.分区

3.1 创建方法

3.2 最佳适用


Welcome to Code Block's blog

本篇文章主要介绍了

[Mysql中的分区和索引]
❤博主广交技术好友,喜欢文章的可以关注一下❤

1.编写目的

        在MySQL中,索引和分区是提高查询效率的关键技术。通过创建合适的索引,可以显著提升数据检索速度。而分区可以作为作为进一步提高查询效率的方式,在较大数量据时通常可以使用这两个结合的方式优化查询速度,所以这边将这两个进行整理,巩固个人知识,同时也希望帮助到有需要的朋友。

2.索引

        索引分为单列索引、多列索引、唯一索引、全文索引.

2.1 创建方法

单列索引

CREATE INDEX {索引名} ON {表名} ({列名});

多列索引

CREATE INDEX {索引名} ON {表名} ({列名1}, {列名2});

唯一索引

CREATE UNIQUE INDEX {索引名} ON {表名} ({列名});

全文索引 

CREATE FULLTEXT INDEX {索引名} ON {表名} ({列名});

2.2 最佳适用

        索引不能随意创建,需要选择合适的列,我们应选择常用的查询条件列(即字段在where经常使用的列作为索引)、JOIN 操作列(做左外、右外、全连接时的列)、排序列(作为排序使用的列),频繁更新列应避免添加索引影响性能,同时避免创建过多的索引.若不需要进行全文搜索操作则尽力避免使用全文索引.

2.3 索引相关语句

查询表内索引

SHOW INDEX FROM {表名};

 查看查询性能

EXPLAIN SELECT * FROM {表名} WHERE {索引字段} = {值};

删除索引

ALTER TABLE {表名} DROP INDEX {索引名};

3.分区

分区根据基于不同的属性进行分区可分为以下几种:

  • RANGE 分区:基于值的范围进行分区
  • LIST 分区:基于值的列表进行分区
  • HASH 分区:基于哈希值进行分区
  • KEY 分区:基于列的键值进行分区

3.1 创建方法

基本语法

CREATE TABLE {表名} (id INT AUTO_INCREMENT PRIMARY KEY,column1 datatype,column2 datatype,...
)
PARTITION BY {分区类型} ({列名});

RANGE分区

适用于时间范围的分区,可以进行按年份分区:

CREATE TABLE orders (id INT AUTO_INCREMENT,order_date DATE,amount DECIMAL(10, 2),PRIMARY KEY (id, order_date)
)
PARTITION BY RANGE (YEAR(order_date)) (PARTITION p2020 VALUES LESS THAN (2021),PARTITION p2021 VALUES LESS THAN (2022),PARTITION p2022 VALUES LESS THAN (2023)
);

LIST 分区

适用于特定值的分区,可进行按国家、省市区进行分区,如下按国家分区:

CREATE TABLE employees (id INT AUTO_INCREMENT,name VARCHAR(100),country VARCHAR(50),PRIMARY KEY (id, country)
)
PARTITION BY LIST (country) (PARTITION p_us VALUES IN ('USA'),PARTITION p_uk VALUES IN ('UK'),PARTITION p_ca VALUES IN ('Canada')
);

HASH 分区

根据不同字段组成的hash值字段进行分区:

CREATE TABLE products (id INT AUTO_INCREMENT,product_name VARCHAR(100),category_id INT,PRIMARY KEY (id, category_id)
)
PARTITION BY HASH (category_id) PARTITIONS 4;

KEY 分区

根据多个字段进行分区,这类似于根据hash值分区

CREATE TABLE sales (id INT AUTO_INCREMENT,product_id INT,sale_date DATE,amount DECIMAL(10, 2),PRIMARY KEY (id, product_id)
)
PARTITION BY KEY (product_id) PARTITIONS 5;

3.2 最佳适用

        在分区时应尽量选择合适的分区类型、分区数量,避免频繁修改分区键的值,进行分区后应使用EXPLAIN分析查询.

        如:当我们创建不同区域拥有不同权限的系统时,我们可以使用LIST分区,或者根据区域字段进行hash生成额外字段,并使用hash分区.或者直接使用key分区的方式对区域列进行分区.这样可以有效提升不同区域用户查询速度.

感谢您的关注和收藏!!!!!!

相关文章:

mysql中的索引和分区

目录 1.编写目的 2.索引 2.1 创建方法 2.2 最佳适用 2.3 索引相关语句 3.分区 3.1 创建方法 3.2 最佳适用 Welcome to Code Blocks blog 本篇文章主要介绍了 [Mysql中的分区和索引] ❤博主广交技术好友,喜欢文章的可以关注一下❤ 1.编写目的 在MySQL中&…...

项目实战--C#实现图书馆信息管理系统

本项目是要开发一个图书馆管理系统,通过这个系统处理常见的图书馆业务。这个系统主要功能是:(1)有客户端(借阅者使用)和管理端(图书馆管理员和系统管理员使用)。(2&#…...

信号【Linux】

文章目录 信号处理方式(信号递达)前后台进程 终端按键产生信号kill系统调用接口向进程发信号阻塞信号sigset_tsigprocmasksigpending内核态与用户态:内核空间与用户空间内核如何实现信号的捕捉 1、信号就算没有产生,进程也必须识别…...

Kafka Producer之ACKS应答机制

文章目录 1. 应答机制2. 等级03. 等级14. 等级all5. 设置等级6. ISR 1. 应答机制 异步发送的效率高,但是不安全,同步发送安全,但是效率低。 无论哪一种,有一个关键的步骤叫做回调,也就是ACKS应答机制。 其中ACKS也分…...

【深入理解SpringCloud微服务】深入理解Eureka核心原理

深入理解Eureka核心原理 Eureka整体设计Eureka服务端启动Eureka三级缓存Eureka客户端启动 Eureka整体设计 Eureka是一个经典的注册中心,通过http接收客户端的服务发现和服务注册请求,使用内存注册表保存客户端注册上来的实例信息。 Eureka服务端接收的…...

算法——滑动窗口(day7)

904.水果成篮 904. 水果成篮 - 力扣(LeetCode) 题目解析: 根据题意我们可以看出给了我们两个篮子说明我们在开始采摘到结束的过程中只能有两种水果的种类,又要求让我们返回收集水果的最大数目,这不难让我们联想到题目…...

Django学习第一天(如何创建和运行app)

前置知识: URL组成部分详解: 一个url由以下几部分组成: scheme://host:port/path/?query-stringxxx#anchor scheme:代表的是访问的协议,一般为http或者ftp等 host:主机名,域名,…...

VScode连接虚拟机运行Python文件的方法

声明:本文使用Linux发行版本为rocky_9.4 目录 1. 在rocky_9.4最小安装的系统中,默认是没有tar工具的,因此,要先下载tar工具 2. 在安装好的vscode中下载ssh远程插件工具 3. 然后连接虚拟机 4. 查看python是否已经安装 5. 下载…...

通义千问AI模型对接飞书机器人-模型配置(2-1)

一 背景 根据业务或者使用场景搭建自定义的智能ai模型机器人,可以较少我们人工回答的沟通成本,而且可以更加便捷的了解业务需求给出大家设定的业务范围的回答,目前基于阿里云的通义千问模型研究。 二 模型研究 参考阿里云帮助文档&#xf…...

[k8s源码]6.reflector

Reflector 和 Informer 是 Kubernetes 客户端库中两个密切相关但职责不同的组件。Reflector 是一个较低级别的组件,主要负责与 Kubernetes API 服务器进行交互,执行资源的初始列表操作和持续的监视操作,将获取到的数据放入队列中。而 Informe…...

前台文本直接取数据库值doFieldSQL插入SQL

实现功能:根据选择的车间主任带出角色。 实现步骤:OA的“字段联动”功能下拉选项带不出表“hrmrolemembers”,所以采用此方法。 doFieldSQL("select roleid from HrmResource as a inner join hrmrolemembers as b on a.id b.resource…...

【06】LLaMA-Factory微调大模型——微调模型评估

上文【05】LLaMA-Factory微调大模型——初尝微调模型,对LLama-3与Qwen-2进行了指令微调,本文则介绍如何对微调后的模型进行评估分析。 一、部署微调后的LLama-3模型 激活虚拟环境,打开LLaMA-Factory的webui页面 conda activate GLM cd LLa…...

数学建模学习(1)遗传算法

一、简介 遗传算法(Genetic Algorithm, GA)是一种用于解决优化和搜索问题的进化算法。它基于自然选择和遗传学原理,通过模拟生物进化过程来寻找最优解。 以下是遗传算法的主要步骤和概念: 初始化种群(Initialization&a…...

NumPy冷知识66个

NumPy冷知识66个 多维切片: NumPy支持多维切片,可以通过指定多个索引来提取多维数组的子集。 复杂数支持: NumPy可以处理复数,提供了复数的基本运算和函数。 比特运算: NumPy支持比特运算,如与、或、异或等。 数据存储格式: NumPy可以将数…...

Wi-SUN无线通信技术 — 大规模分散式物联网应用首选

引言 在数字化浪潮的推动下,物联网(IoT)正逐渐渗透到我们生活的方方面面。Wi-SUN技术以其卓越的性能和广泛的应用前景,成为了大规模分散式物联网应用的首选。本文将深入探讨Wi-SUN技术的市场现状、核心优势、实际应用中的案例以及…...

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤 本文档详细记录了在 Ubuntu Server 22.04 上安装 Docker 的完整过程,包括解决过程中遇到的问题。希望能对读者有所帮助。 安装过程,重点需要看官方文档。https://docs.docker.com/engine/install/ubu…...

前端使用 Konva 实现可视化设计器(18)- 素材嵌套 - 加载阶段

本章主要实现素材的嵌套(加载阶段)这意味着可以拖入画布的对象,不只是图片素材,还可以是嵌套的图片和图形。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ github源码 g…...

vue3 -layui项目-左侧导航菜单栏

1.创建目录结构 进入cmd,先cd到项目目录&#xff08;项目vue3-project&#xff09; cd vue3-project mkdir -p src\\views\\home\\components\\menubar 2.创建组件文件 3.编辑menu-item-content.vue <template><template v-if"item.icon"><lay-ic…...

Spring AOP(1)

目录 一、AOP 概述 什么是Spring AOP&#xff1f; 二、Spring AOP 快速入门 1、引入AOP依赖 2、编写AOP程序 三、Spring AOP 详解 1、Spring AOP的核心概念 &#xff08;1&#xff09;切点&#xff08;Pointcut&#xff09; &#xff08;2&#xff09;连接点&#xff…...

第1关 -- Linux 基础知识

闯关任务 完成SSH连接与端口映射并运行hello_world.py ​​​​ ssh -p 37367 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno可选任务 1 将Linux基础命令在开发机上完成一遍 可选任务 2 使用 VSCODE 远程连接开发机并创建一个conda环境 …...

tensorflow keras Model.fit returning: ValueError: Unrecognized data type

题意&#xff1a;TensorFlow Keras 的 Model.fit 方法返回了一个 ValueError&#xff0c;提示数据类型无法识别 问题背景&#xff1a; Im trying to train a keras model with 2 inputs: an image part thats a tf.data.Dataset and a nor mal part represented by a pd.DataF…...

虚拟机固定配置IP

在Hyper-V中&#xff0c;vEthernet (Default Switch) 是Hyper-V自带的默认虚拟交换机&#xff0c;它允许虚拟机直接连接到宿主机网络或外部网络。这个虚拟交换机可以通过Hyper-V管理器或PowerShell等工具进行管理和配置。以下是具体的操作步骤&#xff1a; 一、通过Hyper-V管理…...

【Pytorch实用教程】pytorch中random_split用法的详细介绍

在 PyTorch 中,torch.utils.data.random_split 是一个非常有用的函数,用于将数据集随机分割成多个子集。这在机器学习和深度学习中非常常见,特别是当你需要将数据集分割成训练集和测试集或验证集时。这里是 random_split 的详细用法介绍: 功能 random_split 用于随机地将…...

第二讲:NJ网络配置

Ethernet/IP网络拓扑结构 一. NJ EtherNet/IP 1、网络端口位置 NJ的CPU上面有两个RJ45的网络接口,其中一个是EtherNet/IP网络端口(另一个是EtherCAT的网络端口) 2、网络作用 如图所示,EtherNet/IP网络既可以做控制器与控制器之间的通信,也可以实现与上位机系统的对接通…...

pytorch中常见的模型3种组织方式 nn.Sequential(OrderedDict)

在nn.Sequential中嵌套OrderedDict组织网络,以对层进行命名 import torch import torch.nn as nn from collections import OrderedDictclass OrderedDictCNN(nn.Module):def __init__(self):super(OrderedDictCNN, self).__init__()# 使用 OrderedDict 定义网络层self.model …...

达梦数据库DM8-索引篇

目录 一、前景二、名词三、语法1、命令方式创建索引1.1 创建索引空间1.2.1 创建普通索引并指定索引数据空间1.2.2 另一种没验证&#xff0c;官方写法1.3 复合索引1.4 唯一索引1.5 位图索引1.6 函数索引 2、创建表时候创建索引3、可视化方式创建索引3.1 打开DM管理工具3.2 找到要…...

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.5技术架构

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…...

随机梯度下降 (Stochastic Gradient Descent, SGD)

SGD 是梯度下降法的一种变体。与批量梯度下降法不同&#xff0c;SGD 在每次迭代中仅使用一个样本&#xff08;或一个小批量样本&#xff09;的梯度来更新参数。它能更快地更新参数&#xff0c;并且可以更容易地跳出局部最优解。 原理 SGD 的基本思想是通过在每次迭代中使用不…...

TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入

经过数月的开发和完善&#xff0c;TDengine 3.3.2.0 版本终于问世了。这一版本中既有针对开源社区的功能优化&#xff0c;也有从企业级用户需求出发做出的功能调整。在开源版本中&#xff0c;我们增强了系统的灵活性和兼容性&#xff1b;而在企业级版本中&#xff0c;新增了关键…...

Ubuntu 24.04 LTS 无法打开Chrome浏览器

解决办法&#xff1a; 删除本地配置文件&#xff0c;再次点击Chrome图标&#xff0c;即可打开。 rm ~/.config/google-chrome/ -rf ref: Google chrome not opening in Ubuntu 22.04 LTS - Ask Ubuntu...

深圳定制型网站建设/seo整站优化新站快速排名

1 被动模式 zabbix默认采用被动模式。就是agent等待server采集数据。 在items中&#xff0c;type为zabbix agent就是指被动模式。 流程为&#xff1a;agent周期性收集数据&#xff0c;server打开一个tcp高位端口&#xff0c;去连接agnet的10050监听端口&#xff0c;请求数据&am…...

作文网站网址/互联网营销主要学什么

当今组织中技术驱动流程的广泛主导地位需要无可挑剔的测试和质量保证。软件测评机构质量保证实践对于采用和部署高性能、无故障的应用程序是必要的&#xff0c;这可以有效地产生优化的行动过程&#xff0c;从而全面改善最终结果。下面一航软件测评的小编为大家讲解软件测试当中…...

房地产销售平台网站建设/如何宣传推广自己的店铺

趁着最近项目稍微能放松下&#xff0c;还是赶在2018到来之前&#xff0c;写个年终总结一下。2017&#xff0c;算是经历比较多的一年&#xff0c;从纯开发质变到技术经理。 1.招聘 春节之后上班之后&#xff0c;就开启了招聘模式。第一阶段&#xff0c;大约从2月份一直到5月份&a…...

专业做鞋子的网站有哪些/短视频运营方案策划书

我用的网络摄像头是 极速公司的产品&#xff0c;135元人民币。Windows 下驱动为 极速三型。 芯片可能是301P 的。 首先下载驱动。网址&#xff1a; http://mxhaard.free.fr/download.html 就是spca5xx-20050116.tar.gz 文件。 解压缩后&#xff0c;读 INSTALL 文档&#xff0c;…...

网站建设 百科/可口可乐网络营销案例

http://www.cnblogs.com/artech/archive/2009/07/04/1516908.html我们想对WCF具有一定了解的人都会知道&#xff1a;在客户端通过服务调用进行服务调用过程中&#xff0c;服务代理应该及时关闭。但是如果服务的代理不等得到及时的关 闭&#xff0c;到底具有怎样的后果&#xff…...

长春市大学生网站建设/冬镜seo

main(int argc,char **argv) argv为指针的指针 argc为整数 char **argv or: char *argv[ ] or: char argv[ ][ ] main()括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法&#xff1a; 假设程序的名称为prog&#xff0c; 1.当只输入prog&#xff0c;则由操…...