MySQL record 07 part

news2024/11/15 13:43:09

索引

这里是引用
注意,是排序,有序就会加快查找的速度。
在这里插入图片描述
优势:在这里插入图片描述
在这里插入图片描述
劣势

  1. 索引会单独占用存储空间
  2. 索引虽然可以提高排序和查找的速度,但同时也会降低更新、删除、新增数据的速度,因为MySQL此时既要更改表,也要维护更改表后对索引的调整。

所以,只有当进行查找操作的时候,建议使用索引,其他操作(比如更删改就不要使用索引了。
索引分类:
在这里插入图片描述
普通索引:
在这里插入图片描述
key就是键
唯一索引:
在这里插入图片描述
单列索引:
在这里插入图片描述
多列索引:
在这里插入图片描述
全文索引:
在这里插入图片描述
在这里插入图片描述


索引的创建

隐式,自动添加的索引这里是引用
显式,创建索引
在这里插入图片描述
在这里插入图片描述
显式创建普通索引在这里插入图片描述
在这里插入图片描述
性能分析语句可以查看是否使用了索引,
先看字段 book_name 有索引
EXPLAIN SELECT * FROM book WHERE book_name=‘some’;
在这里插入图片描述

结果中看到type是ref表示使用了索引,索引名字为idx_bname 再看字段 info 是没有索引的, EXPLAIN SELECT *
FROM book WHERE info=‘some’;
在这里插入图片描述
结果中看到type是all,表示没有使用索引,
显式创建唯一索引
在这里插入图片描述
在这里插入图片描述
显式创建主键索引
在这里插入图片描述
在这里插入图片描述
显式创建单列索引
在这里插入图片描述
在这里插入图片描述
显式创建多列索引
在这里插入图片描述
在这里插入图片描述
多列索引也叫联合索引,
使用性能分析语句查看是否使用的索引,
创建表语句包含的联合索引为:INDEX mul_bid_bname_info(book_id,book_name,info)
EXPLAIN SELECT * FROM book4 WHERE book_id=‘some’;
在这里插入图片描述
上图中可以看到type为ref表示使用了联合索引,
注意,只有当查询的字段是多列索引中定义的首字段的时候,才会使用多列索引,如果查询的字段不是多列索引定义的多个字段中的第一个字段,将不会使用多列索引,举例如下:
EXPLAIN SELECT * FROM book4 WHERE book_name=‘some’;
在这里插入图片描述
可以看到,本次性能查询语句中查询的字段不是多列索引显式定义时的首字段(book_id,book_name,info),即使book_name在多列索引定义中,但此时做的查询是不会使用多列索引的。
再举一个例子,
EXPLAIN SELECT * FROM book4 WHERE book_id=1001 AND book_name=‘some’; 查询字段中指定了2个字段都包含在定义多列索引中,最重要的是其中有定义多列索引中的首字段book_id,所以这条查询语句一定会使用多列索引,
而下面的这个例子
EXPLAIN SELECT * FROM book4 WHERE info=‘book’ AND book_name=‘some’;
在这里插入图片描述
infobook_name 虽然都在定义的多列索引里,但它们都不是多列索引的首字段,所以在查询时候还是不会使用多列索引。
创建全文索引
在这里插入图片描述
在这里插入图片描述
创建索引的另一种方式,给已经存在的表创建索引:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用create index方式在已创建的表上创建索引:
在这里插入图片描述
在这里插入图片描述
这是在已经创建好的表上创建索引的另一种方式,
在这里插入图片描述
在这里插入图片描述
测试索引案例:
在这里插入图片描述
建表后,创建数据填充函数mock_data:
在这里插入图片描述
在创建函数过程中,如果出现错误提示:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)
需要设置,
SET GLOBAL log_bin_trust_function_creators=TRUE;
如果数据库没有使用主从复制,那么就可以将参数log_bin_trust_function_creators设置为1。

mysql> set global log_bin_trust_function_creators=1;

这个动态设置的方式会在服务重启后失效,所以我们还必须在my.cnf中设置,加上log_bin_trust_function_creators=1,这样就会永久生效。
expain 可以分析MySQL语句的执行能力(耗时),
SELECT * FROM app_user WHERE name=‘user99’;
EXPLAIN SELECT * FROM app_user WHERE name=‘user99’;
在查询语句最前面加上EXPLAIN ,就可以分析这条查询语句的耗时(执行能力),
删除索引:
DROP INDEX uk_idx_bname ON book6;
在这里插入图片描述
alter

september2024the23thMonday

需要用到索引的几种情况:

在这里插入图片描述

不需要使用索引的几种情况:

这里是引用

索引失效的几种原因:

在这里插入图片描述
在这里插入图片描述

september2024the23thMonday

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2159397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu安装无线网卡驱动(非虚拟机版)

本文不是基于虚拟机,是双系统 太夸张了 实验室居然没网线 只有一个师兄留下来的无线网卡 装完了ubuntu结果没网 make都用不了 然后搜了下大概发现是没有预装gcc和make 参考如下 https://zhuanlan.zhihu.com/p/466440088 https://wwsk.lanzouj.com/iAj4t2ao46zc…

电脑配置不够,想玩老头环可以上ToDesk云电脑体验一下

最近,《艾尔登法环》游戏更新了好多新东西,让玩家特别兴奋。比如说,FromSoftware工作室一直在改进游戏,让游戏运行得更稳、更流畅。而且,《艾尔登法环:黄金树幽影》这个扩展包一出,游戏世界变得…

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘attribute‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

调用JS惰性函数问题

第一次调用这个函数时 console.log(a) 会被执行,打印出 a,全局变量 a 被重定义并被赋予了新的函数,当再一次调用时,console.log(b) 被执行。 用处:因为各浏览器之间的行为差异,经常会在函数中包含了大量的…

Kafka技术详解[1]:简介与基础概念

目录 1. Kafka入门 1.1 概述 1.1.1 初识Kafka 1.1.2 消息队列 1.1.3 生产者-消费者模式 1.1.4 消息中间件对比 1.1.5 ZooKeeper 1. Kafka入门 1.1 概述 1.1.1 初识Kafka Kafka是由Scala和Java语言开发的高吞吐量分布式消息发布和订阅系统,也是大数据技术领…

《汇编语言》第14章——实验 14访问CMOS RAM

编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间 assume cs:code data segment db 2024/09/23 00:00:00,$ data endscode segment start:mov ax,datamov es,axcall get_hms_funccall get_ymd_funcmov dh,12 ;dh中存放…

黑马头条day3-2 自媒体文章管理

前边还有一个 素材列表查询 没什么难度 就略过了 查询所有频道和查询自媒体文章也是和素材列表查询类似 就是普通的查询 所以略过了 文章发布 这个其实挺复杂的 一共三张表 一个文章表 一个素材表 一个文章和素材的关联表 区分修改与新增就是看是否存在id 如果是保存草稿…

实现一个基于nio的discard server

写在前面 源码 。 为了能够进一步的熟悉下nio相关的api操作,本文来实现一个基于nio的discard server。 discard server的意思是,server接收到来自client的一个消息之后,直接就将连接关闭,即discard。 1:正戏 1.1&…

MySQL深度探索:掌握触发器自动化与精细用户权限管理,提升数据库效能与安全

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#x…

gitlab集成CI/CD,shell方式部署

目录 1.首先安装好gitlab和gitlab-runner,这两个,看我以往的教程 2.注册新的 Runner 3. 步骤 3.1 Enter the GitLab instance URL (for example, https://gitlab.com/): 3.2 Enter the registration token: 3.3 Enter a description for the runner: 3…

【2024.09】关于 UMLS 在支持大型语言模型提出的诊断生成中的作用

生物医学信息学杂志 链接:https://www.sciencedirect.com/science/article/abs/pii/S1532046424001254?via%3Dihub On the role of the UMLS in supporting diagnosis generation proposed by Large Language Models Author links open overlay panelMajid Afsh…

线上搭子小程序:随时随地找搭子!

搭子作为当下流行的一种社交方式,受到了年轻人的讨论关注,不管做什么都可以找不同的“搭子”。追剧、考试、健身、减肥、旅游等都可以找到志趣相投的搭子,满足年轻人的社交需求。 在互联网的发展下,年轻人找搭子也逐渐倾向于线上…

ubuntu22 解决docker无法下载镜像问题

参考在 Ubuntu 中安装 Docker_ubuntu安装docker-CSDN博客 安装docker完成后,运行如下命令验证 Docker 服务是否在运行: systemctl status docker 运行(sudo docker run hello-world)例子报错: 问题:Docker…

ubuntu内网穿透后在公网使用ssh登录

需求: 我有一台内网可以通过ssh 22端口访问的设备操作系统是ubuntu server我还有1台拥有公网IP的服务器,IP地址是 6.66.666.6666我想随时从其他网段通过ssh访问我的ubuntu server设备 实现: 工具准备:frp 网址:https…

一看就会!PS2024下载安装教程详解

PS2024下载方法: PS2024安装教程: 1、右击【PS2024.zip】,选择【解压到PS2024】 2、右击【Set-up.exe】,选择【以管理员身份运行】 3、点击右下角灰色的小文件夹图标,选择【更改位置】 4、选择安装路径后,…

【每日刷题】Day130

【每日刷题】Day130 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 144. 二叉树的前序遍历 - 力扣(LeetCode) 2. 94. 二叉树的中序遍历 - 力扣…

注册安全分析报告:闪送

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

C#测试调用Ghostscript.NET浏览PDF文件

Ghostscript.NET是针对Ghostscript的C#封装库,支持解析PostScript语言、操作PDF文件等。使用Ghostscript.NET的GhostscriptViewer 模块可以以图片形式查看PDF文档。本文学习并测试调用Ghostscript.NET模块打开及浏览PDF文件的基本用法。   Ghostscript.NET目前主要…

.NET 6.0 WebAPI 使用JWT生成Token的验证授权

1.引入相关程序包JwtBearer注意版本: 2.配置文件appsettings.json写相关配置参数(也可不写,写在程序里面,数据库读取也是一样的) , //JWT加密"JWTToken": {"SecretKey": "jsaduwqe6asdjewejdue7dfmsdfu0sdfmwmsd8wfsd6",…

洛谷-P3916 图的遍历

题目描述 给出 N 个点,M 条边的有向图,对于每个点 v,求A(v) 表示从点 v 出发,能到达编号最大的点。 思路 既然是要找到最大的点,那么我从最大的点开始DFS是否可以? 于是可以反向建图,然后从最…