【Mysql】mysql学习之旅08-索引

MySQL中索引详解 除聚簇索引之外的所有索引都称为辅助索引。在中InnoDB,辅助索引中的叶子节点存储的数据是该行的主键值都。在检索时,InnoDB使用此主键值在聚簇索引中搜索行记录。这里以user_innodb为例,user_innodb的id列为主键,age列为普通索引。 阅读详情

mysql学习之旅08-索引

概念:索引相当于目录,在数据库中维护表数据的顺序。快速定位数据。一张表可以设置多个索引。但不代表越多越好,索引本身占用系统资源。频繁使用的列建议追加索引

作用:

  1. 提高数据的查询速度,节省系统资源
  2. 确保数据的唯一性
  3. 可以加速表和表之间的连接,实现表与表之间的参照完整性
  4. 使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间

分类:

  1. 普通索引:提高查询效率
  2. 唯一约束:为了避免列值重复,创建了唯一性约束,自动创建。
  3. 主键索引:表设置主键会自动生成,一张表只能有一个
  4. 复合索引:将多个列合并在一起建立索引(一般情况下,不推荐)
  5. 全文索引:只能用于MyISAM引擎,使用与大字段文本
  6. 空间索引:对空间数据类型的列,必须声明not null,只能用于MyISAM引擎

使用:

  1. 创建索引
create index 索引名 on 表名(字段名)
  1. 修改索引:先删除再创建
  2. 删除索引
drop index 索引名 on 表名
  1. 查看索引
show index(或keys) from 表名

准则:

  1. 索引不是越多越好
  2. 不要对经常变动的数据加索引
  3. 小数据量的表建议不要加索引
  4. 索引一般应加载查找条件的字段

注意:

  1. 准确查询会使用索引
  2. 模糊查询,只有确定开头(‘xx%’)才使用索引
数据库设计:

E-R图

  1. 实体(Entity): 名词,矩形
  2. 属性(Attribute): 名词,椭圆
  3. 关系(Service): 动词,菱形

三个范式:

  1. 第一范式:1NF 原子性

表中的列具有原子性,不可分割,数据不能重复

  1. 第二范式:2NF 实体完整性

表中需要设置主键,确保实体完整性,表中的非主键属性依赖于主键

  1. 第三范式:3NF 不能有传递依赖
    表中非主键列直接依赖主键,不能有传递依赖,如果有传递依赖,需要拆分表,设置主外键关系,确保引用完整性
SQL优化:
  1. 索引优化
  2. 选择合适的列数据类型
  3. 尽可能使用NOT NULL
  4. 避免使用多表连接,join的字段需要加索引
  5. 尽量不要使用子查询
  6. 尽量再where子句中使用!=或<>操作符
  7. 慎用in 和not in
  8. 尽量使用数字类型的字段
  9. 查询尽量避免使用*,写出需要查询的字段
MySQL 的索引 在 MySQL 中,索引(index)也叫做键(key),它是存储引擎用于快速找到记录的一种数据结构。 索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对性能的影响就愈发重要。 索引优化是对查询性能优化最有效的手段。 阅读详情

相关推荐

MySQL-索引

MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的结构,主要包含以下几种:不同的存储引擎对索引结构的支持情况:注意:平常所说的索引,如果没有特别指明,都是指B+树索引。

m0_73902080的博客 1405

mysql索引总结----mysql 索引类型以及创建

关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR

写代码的小孩 24万+

Ren’py教程《从入门到精通》

Ren’py是什么?Ren'py是一款用于制作视觉小说、冒险游戏、galgame的游戏制作工具,被来自世界各地的数千名创作者使用。Ren'py的名字由Ren’ai和Python混合而成,而Python也是Ren'py所使用的环境语言。Ren'py可以帮助你使用文字、图像和声音来讲述在计算机和移动设备上运行的交互式故事。这些既可以是视觉小说,也可以是生活模拟游戏。易于学习的脚本语言允许 任何人都可以有效地编写大型视觉小说,而它的Python 脚本足以应对复杂的 模拟游戏。

2302_77140651的博客 1万+

MySQL索引【详解】

文章目录第一篇 什么是索引?1、来看一个问题方案1方案2方案3方案42、索引是什么?第二篇 MySQL索引原理详解1、背景2、预备知识什么是索引?磁盘中数据的存取mysql中的页数据检索过程3、我们迫切的需求是什么?(数据结构和算法)3.1、循环遍历查找3.2、二分法查找3.3、有序数组3.4、链表单链表双向链表3.5、二叉查找树3.6、平衡二叉树(AVL树)3.7、B-树3.8、B+树3.9、Mysql的存储引擎和索引3.10、页结构数据检索过程对page的结构总结一下第三篇 MySQL索引管理1、索引分

wang_luwei的博客 7269

Ubuntu系统 nano 编辑器使用教程

• 原因:文件编码不兼容(如 Windows 的 CRLF 换行符)。• 若使用 SSH 工具(如 PuTTY),确保终端设置中未占用。掌握这些操作后,你可以高效使用 nano 完成大部分文本编辑任务!• 底部快捷键栏:显示常用操作的快捷键(• 如果文件已修改,会提示是否保存:按。• 顶部状态栏:显示文件名和编辑状态。表示 Ctrl + G(查看帮助)。保存时自动生成备份文件(原文件名后加。• 强制保存只读文件:用。启动 nano 时添加。启动 nano 时添加。(重做)触发自动缩进。

qq_44534541的博客 2083

python入门:Anaconda和Jupyter notebook的安装与使用

一、安装和使用Anaconda 1、anaconda是什么? Anaconda在英文中是“巨蟒”的意思,与python的意思相近,它是python的包管理器和环境管理器。 2、为什么需要安装anaconda? 原因有以下几点: 附带一大批常用的数据科学包,方便立即开始处理数据 管理包 anaconda是在conda(一个包管理器和环境管理器)上发展来的;而conda可以很方便地对第三方的包进行安装、卸载和更新。 管理环境 conda可以为不同的项目建立不同的运行环境,避免不同的项目或包版本

PY洋洋 1万+

MySQL第九讲·索引怎么提高查询的速度?

索引可以非常显著的提高数据查询的速度,数据表里包含的数据越多,效果越显著。我们应该选择经常被用做筛选条件的字段来创建索引,这样才能通过索引缩小实际读取数据表中数据的范围,发挥出索引的优势。如果有多个筛选的字段,而且经常一起出现,也可以用多个字段来创建组合索引。drop index 索引名 on 表名;当然, 有的索引不能用这种方法删除,比如主键索引,我们就必须通过修改表来删除索引。alter table 表名 drop primary key;

安然无虞的博客 7325

【案例讲解】LVGL关于旋转的配置

在实现项目中,因为横竖屏的关系,需要对其做90度的旋转。配置旋转时发现一些局部刷新控件,旋转后效果不对。异常图标正常图标。

Bigan(安)的博客 4282

mysql索引学习—创建索引、修改索引、删除索引的命令语句

联合索引: 查看表中已经存在 index:showindex from table_name; 创建和删除索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。(1)使用ALTER TABLE语句创建索引。 语法如下: alter ...

chenkaibsw的专栏 4376

RK3588部署YOLO模型 包含模型量化+npu轻量化+ubuntu+RGA图像加速和多线程模型加速 包源码

本专栏为深度学习部署全栈学习体系,包含68篇由浅入深的教程,专为零基础学习者设计。内容涵盖TensorRT与RK3588平台部署技术,包含Jetson系列和RK系列硬件部署实战,采用"理论+源码+实战"三位一体的教学模式。学习路径从基础环境搭建到模型优化、容器化部署、多硬件平台适配,最终掌握工业级AI部署能力。特色包括C++基础教学、Docker容器化、INT8量化、多线程优化等核心技术,并附带YOLOv5、人脸检测、车牌识别等多个实战项目源码。适合算法工程师转部署方向、嵌入式开发者及对

FJN110的博客 3730

一文学会python基础知识

1. python 运行环境 1.1 脚本式环境 1.2 交互式环境 2. python 注释 3. 变量及变量命名 4. 关键词 BIFS 5. 标准操作符 6. 条件判断 7. 循环 8. python 数据类型 9. python 序列 9.1 序列-字符串(str) 9.2 序列-列表 9.3 序列-元组 10. 字典 11. 集合 12. python内存管理及可变、不可变对象 13. 函数 13.1 函数参数 13.2 return and yiled(生成器) 13.3 参数传递处理 ...

weixin_43178406的博客 26万+

MySQL笔记:第08章_索引的创建与设计原则

第08章_索引的创建与设计原则1.索引的声明与使用1.1索引的分类1.2创建索引2.在已经存在的表上创建索引 1.索引的声明与使用 1.1索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从功能逻辑上说,索引主要有4种,分别是普通索引、唯一索引、主键索引、全文索引 按照物理实现方式,索引可以分为2种:聚簇索引和非聚簇索引 按照作用字段个致进行划分,分成单列索引和联合索引 1.普通索引 在创建普通索引时,不附加任何限制条件,只是用于提高查询效率。这类索引可

IAMLSL的博客 3353

基于STM32、HAL库的GZP6816D气压传感器 驱动程序设计

测量范围:0-16kPa(可根据型号不同有变化)工作电压:1.8V-3.6V。高精度:±1% FS。

corlin6688的博客 217

【mysql】mysql之索引学习

一. 索引    1.什么是索引    2.索引的种类     1)Btree索引     2)B+tree索引     3)B*tree索引    3索引根据算法分类     1)主键索引(聚集索引)     2)唯一键索引     例     3)普通索引(辅助索引)     4)全文索引     5)查看索引     6)删除索引    4索引根据配置方法分类     7)联合索引     8)前缀索引   二、explain的使用

zerotoall的博客 1084

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【MySQL基础】索引

MySQL索引结构、各种概念、失效场景、设计原则与优化

scj1022的博客 3118

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

mysql索引总结_mysql 索引类型以及创建

文章归属:http://feiyan.info/16.html  自己还是小白,从借鉴别人的东西开始学习。     关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还

杨帅的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【宋红康 MySQL数据库 】【高级篇】【08】索引的数据结构

索引的数据结构

Keep Reading Keep Writing Keep Thinking 1761

MySQL的索引

索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

qq_63161848的博客 5202

2019-1-08-Mysql学习之索引

layout title date author desc in_head post Mysql学习之索引 2019-01-07 10:00:02 +0800 南丞 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 <style> .article-con...

PFinal社区 222

MySQL笔记-08 索引

索引是一种特殊的数据库结构,是提高数据库性能的重要方式,可以用来快速查询数据库表中的特定记录,MySQL中所有的数据类型都可以被索引。MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。本章将介绍索引的概念、作用、不同类别,用不同的方法创建索引以及删除索引的方法等。

565

MySQL索引特性

MySQL事务索引特性

. 1550

【MySQL 第08章_索引的创建与设计原则】

MySQL

cl24的博客 1061

MySQL 索引

索引是用于快速找出在某个列中拥有特定值的行。如果没有索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多。如果拥有索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。

卷不动的程序员 1159

【MySQL基础】08:索引

什么是索引, 索引,就是将数据表中的某一列或多列的值取出来构造成更便于查找的结构进行存储,生成数据表的目录;当我们进行数据查询的时候,则先回在目录中进行查找得到对应的数据的地址,然后再到数据表中快速过去数据记录,避免全表扫描。索引的作用:`排序`和`查找`......

大橘的博客 278
上一篇: 【Mysql】mysql学习之旅07-视图
下一篇: 【Mysql】mysql学习之旅09-触发器
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值