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

MySQL索引-索引的分类和创建

索引类型

  • 数据类型
    • B+树索引
    • Hash索引
    • FullText全文索引
  • 物理存储
    • 聚簇索引
    • 二级索引
  • 字段特性
    • 主键索引
    • 唯一索引
    • 普通索引
    • 前缀索引
  • 字段个数
    • 单列索引
    • 联合索引

创建索引

  • 创建表时一同创建
  • 创建表后单独创建
  • 创建表后通过修改表结构创建

可以通过 SHOW INDEX FROM test_table;查看表中的索引情况

CREATE TABLE test_table (id INT AUTO_INCREMENT,              -- 用于主键索引name VARCHAR(255) NOT NULL,         -- 用于普通索引email VARCHAR(255) NOT NULL,        -- 用于唯一索引phone_number VARCHAR(20),           -- 用于前缀索引city VARCHAR(100),                  -- 用于联合索引state VARCHAR(100),                 -- 用于联合索引PRIMARY KEY (id)                    -- 创建主键索引
);

主键索引:不允许有空值。在创建或修改表时追加主键约束即可,每个表只能有一个主键。

PRIMARY KEY (id)

主键索引

唯一索引:索引字段的值必须唯一,但允许有空值 。唯一索引不一定创建在唯一列上,在创建或修改表时追加唯一约束,就会自动创建对应的唯一索引。

CREATE UNIQUE INDEX uniq_email ON test_table (email);

唯一索引

普通索引:这是最基本的索引类型,基于普通字段建立的索引,没有任何限制。

CREATE INDEX idx_name ON test_table (name);

普通索引

CREATE INDEX idx_phone_prefix ON test_table (phone_number(10));

前缀索引

联合索引

何时使用复合索引,要根据where条件建索引,注意不要过多使用索引,过多使用会对更新操作效

率有很大影响。

如果表已经建立了(col1,col2),就没有必要再单独建立(col1);如果现在有(col1)索引,如果查

询需要col1和col2条件,可以建立(col1,col2)复合索引,对于查询有一定提高。

CREATE INDEX idx_city_state ON test_table (city, state);

联合索引

FullText索引

查询操作在数据量比较少时,可以使用like模糊查询,但是对于大量的文本数据检索,效率很低。如果使用全文索引,查询速度会比like快很多倍。在MySQL 5.6 以前的版本,只有MyISAM存储引擎支持全文索引,从MySQL 5.6开始MyISAM和InnoDB存储引擎均支持。

CREATE FULLTEXT INDEX idx_description ON test_table (description);

全文索引有自己的语法格式,使用 match 和 against 关键字

SELECT * 
FROM test_table
WHERE MATCH(description) AGAINST('w');

查看FullText索引相关参数

SELECT *  FROM test_table WHERE MATCH(description) AGAINST('wwwww*' in boolean mode);

全文索引使用注意事项:

  • 全文索引必须在字符串、文本字段上建立。
  • 全文索引字段值必须在最小字符和最大字符之间的才会有效。(innodb:4-84)
  • 全文索引字段值要进行切词处理,按syntax字符进行切割,例如b+aaa,切分成b和aaa
  • 全文索引匹配查询,默认使用的是等值匹配,例如a匹配a,不会匹配ab,ac。如果想匹配可以在布尔模式下搜索a*

相关文章:

MySQL索引-索引的分类和创建

索引类型 数据类型 B树索引Hash索引FullText全文索引 物理存储 聚簇索引二级索引 字段特性 主键索引唯一索引普通索引前缀索引 字段个数 单列索引联合索引 创建索引 创建表时一同创建创建表后单独创建创建表后通过修改表结构创建 可以通过 SHOW INDEX FROM test_table;查看…...

如何给负载均衡平台做好安全防御

在现代网络架构中,负载均衡(Load Balancing)扮演着至关重要的角色。它不仅负责将流量分配到多个服务器以确保高效的服务交付,还作为第一道防线来抵御外部攻击。为了保护您的应用程序和服务免受潜在威胁,必须对负载均衡…...

HR/TA/HRBP的关系

HR(人力资源)领域包含 TA(人才获取)和 HRBP(人力资源业务伙伴)这两个重要的角色,但它们只是 HR 工作的一部分分支,一般我们说的HR指TA。 1. 人才获取(TA) 定…...

Docker环境下MySQL数据库持久化部署全攻略

概述 在当今的软件开发领域,Docker容器技术已经成为应用部署和管理的新标准。它不仅简化了应用的部署流程,还为数据管理提供了灵活的解决方案。特别是在涉及到MySQL数据库时,数据持久化是一个不可忽视的重要环节。本文将分享如何在Docker中部…...

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复: 2、说明: 1)如果小伙伴们经常做android开发的话,这个不陌生,因为调试都是要开启这个开发者模式。并启用USB调试模式。 2)需要连上USB线,有的时候会忘记,然…...

react中使用ResizeObserver来观察元素的size变化

在 React 中使用 ResizeObserver 来观察元素的大小变化,可以通过创建一个自定义 Hook 来封装 ResizeObserver 的逻辑,并在组件中使用这个 Hook。以下是一个完整的示例,展示了如何在 React 中使用 ResizeObserver 来观察元素的大小变化。 自定…...

Linux快速入门-Linux文件系统管理

Linux文件系统管理 1. Linux文件系统概述1.1 文件系统概念1.2 用户权限差异1.3 文件命名规范 2. Linux文件系统分类及特点2.1 ext2(第二扩展文件系统)2.2 ext3(第三扩展文件系统)2.3 ext4(第四扩展文件系统&#xff09…...

漏洞检测工具:Swagger UI敏感信息泄露

Swagger UI敏感信息泄露 漏洞定义 Swagger UI是一个交互式的、可视化的RESTful API文档工具,它允许开发人员快速浏览、测试API接口。Swagger UI通过读取由Swagger(也称为OpenAPI)规范定义的API描述文件(如swagger.json或swagger…...

VSCode如何修改默认扩展路径和用户文件夹目录到D盘

在使用Visual Studio Code(VSCode)时,随着安装的扩展和用户数据的增多,C盘的空间可能会逐渐紧张。为了优化存储管理,将VSCode的默认扩展路径和用户文件夹目录迁移到D盘是一个有效的解决方案。以下是详细的操作步骤&…...

【超详细实操内容】django的身份验证系统之限制用户访问的三种方式

目录 1、使用request.user.is_authenticated属性 2、装饰器login_required 3、LoginRequiredMixin类 通常情况下,网站都会对用户限制访问,例如,未登录的用户不可访问用户中心页面。Django框架中使用request.user.isauthenticated属性、装饰器loginrequired和LoginRequire…...

AI芯片常见概念

文章目录 AI芯片常见概念前言常见概念AI芯片分类按照芯片的技术架构分GPU半定制化的 FPGA全定制化 ASIC神经拟态芯片 按应用场景分训练卡推理卡 按部署位置分国产AI卡资料汇总 AI芯片算力和能效比AI芯片算力AI芯片能效比 封装相关Chiplet技术3DIC三星多芯片集成联盟&#xff08…...

Linux 中 epoll 的详解

Linux 中 epoll 的详解 epoll 是 Linux 内核提供的一种高效的 I/O 多路复用机制,用于监控大量文件描述符的 I/O 事件。相较于传统的 select 和 poll,epoll 在高并发和大规模网络编程场景下表现出色,特别适合需要处理成千上万个文件描述符的应…...

增加nginx配置文件(conf.d), 管理多个项目

1.切换到nginx目录下, 新建conf.d文件夹 mkdir conf.d 2.赋予conf.d权限 chmod 777 conf.d 3.进入conf.d, 编辑conf文件 vim zc_travel.conf server { listen 13101; server_name localhost;location / {root /home/baoxin/app/web/insight-radar-rcfx-pre/html_dev;index …...

PostgreSQL编译安装教程

下载安装 1.在家目录创建一个文件夹放下载安装包 mkdir softwarecd software 2.下载文件压缩包 wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz 3.解压 tar -xzvf postgresql-16.0.tar.gz 4.编译 在software/postgresql-16.0下 cd software…...

【提审】Android包提审报权限问题

问题:华为应用市场审核不通过 平台审核检测详情: 日志: 自检工具:frida-server【Unity&Android】安卓app自测应用隐私相关获取和申请权限_apk 隐私合规 自测-CSDN博客 参考资料:Unity启动时获取了android_id等设…...

xdoj 数字个数统计

1-2 数字个数统计 2 时间限制&#xff1a; 1S 题目描述&#xff1a; 一个正整数 n&#xff08;1<n<1000)&#xff0c;在区间[n,n2 ]&#xff08;含端点&#xff09;内统计奇数个数、 偶数个数、能被 4 整除且不能被 3 整除的数字个数&#xff0c;并求出各统计数字两两…...

空天地遥感数据识别与计算--数据分析如何助力农林牧渔、城市发展、地质灾害监测等行业革新

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…...

Git:查看分支、创建分支、合并分支

一、查看分支 查看的git命令如下&#xff1a; git branch # 列出本地已经存在的分支&#xff0c;并且当前分支会用*标记 git branch -r # 查看远程版本库的分支列表 git branch -a # 查看所有分支列表&#xff08;包括本地和远程&#xff0c;remotes/开头的表示远程分支&…...

联合目标检测与图像分类提升数据不平衡场景下的准确率

联合目标检测与图像分类提升数据不平衡场景下的准确率 在一些数据不平衡的场景下&#xff0c;使用单一的目标检测模型很难达到99%的准确率。为了优化这一问题&#xff0c;适当将其拆解为目标检测模型和图像分类模型的组合&#xff0c;可以更有效地控制最终效果&#xff0c;尤其…...

Git的简介

文章目录 一.Git是什么二.核心概念三.工作流程四.Git的优势 下载Git 推荐官网下载 官网地址 一.Git是什么 Git是一个分布式版本控制系统&#xff0c;用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器&#xff0c;能够记录文件在不同时间点的状态&…...

如何突破Stable Diffusion生成瓶颈?ComfyUI_TensorRT实战解密

如何突破Stable Diffusion生成瓶颈&#xff1f;ComfyUI_TensorRT实战解密 【免费下载链接】ComfyUI_TensorRT 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_TensorRT 你是否曾在等待Stable Diffusion图像生成时感到焦虑&#xff1f;每次点击"生成"按…...

别再谈OKR了!SITS2026重磅发布《AI原生团队动力学模型》:用3个动态参数替代KPI,实测交付周期压缩41%

第一章&#xff1a;SITS2026演讲&#xff1a;AI原生研发的文化变革 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场&#xff0c;来自全球37家头部科技企业的工程负责人共同指出&#xff1a;AI原生研发已不再仅是工具链升级&#xff0c;而是一场以“人机协同决…...

Visio中高效导出无白边SVG矢量图的完整指南

1. 为什么需要无白边SVG矢量图&#xff1f; 写论文或者做演示文稿时&#xff0c;经常需要在文档中插入各种图表。Visio作为一款专业的绘图工具&#xff0c;能够帮助我们快速创建流程图、架构图等专业图形。但直接将Visio图形导出为SVG格式时&#xff0c;往往会发现图片周围有大…...

3分钟解决游戏手柄兼容性难题:ViGEmBus的神奇力量

3分钟解决游戏手柄兼容性难题&#xff1a;ViGEmBus的神奇力量 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 还在为心爱的游戏手柄在PC上无法使用而烦恼吗&…...

肺部音频数据集:从咳嗽检测到呼吸音分类的全面解析

1. 肺部音频数据集的价值与应用场景 当你听到咳嗽声时&#xff0c;能分辨出是普通感冒还是更严重的肺部疾病吗&#xff1f;这个问题正是肺部音频数据集要解决的核心问题。这类数据集通过收集大量咳嗽、呼吸等声音样本&#xff0c;为AI模型提供训练素材&#xff0c;最终实现自动…...

OpenClaw多模型切换:Qwen3-14b_int4_awq与其他本地模型的协同使用

OpenClaw多模型切换&#xff1a;Qwen3-14b_int4_awq与其他本地模型的协同使用 1. 为什么需要多模型协同 在我的自动化工作流实践中&#xff0c;单一模型往往难以满足所有场景需求。比如处理代码生成任务时&#xff0c;我需要模型具备较强的逻辑推理能力&#xff1b;而在撰写自…...

【Maxwell16.0】实战解析:电机三维空载仿真中的常见问题与解决方案

1. Maxwell16.0电机三维空载仿真入门指南 第一次打开Maxwell16.0做电机三维仿真时&#xff0c;很多人都会被复杂的界面吓到。其实只要掌握几个关键步骤&#xff0c;就能快速上手。我刚开始学习时也走了不少弯路&#xff0c;现在把最实用的操作方法分享给大家。 三维空载仿真的核…...

GLM-OCR快速入门:从上传图片到获取文字,全程只需2分钟

GLM-OCR快速入门&#xff1a;从上传图片到获取文字&#xff0c;全程只需2分钟 1. 为什么选择GLM-OCR&#xff1f; 在日常工作和学习中&#xff0c;我们经常需要将图片中的文字提取出来。传统OCR工具要么识别率不高&#xff0c;要么操作复杂。GLM-OCR作为一款轻量级专业级多模…...

Plant Simulation数字孪生实战:从零搭建生产车间模型(附SimTalk脚本示例)

Plant Simulation数字孪生实战&#xff1a;从零搭建生产车间模型&#xff08;附SimTalk脚本示例&#xff09; 在工业4.0的浪潮中&#xff0c;数字孪生技术正成为制造业转型升级的核心驱动力。作为西门子Tecnomatix产品线中的重要组成部分&#xff0c;Plant Simulation以其强大的…...

Oracle数据库中,将JSON字符串转换为多行数据

在Oracle数据库中&#xff0c;在将JSON字符串转换为多行数据时&#xff0c;通常可以使用JSON函数与一些SQL技巧来实现。下面是一些常见的方法来处理这个问题&#xff1a;方法1&#xff1a;使用JSON_TABLE函数JSON_TABLE 函数可以将JSON数组转换为关系表。例如&#xff0c;如果有…...