![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 71
Levi__Zhang
这个作者很懒,什么都没留下…
展开
-
索引结构与检索原理
(1)如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘块1的P2指针,内存时间因为非常短(相比磁盘的IO)可以忽略不计,通过磁盘块1的P2指针的磁盘地址把磁盘块3由磁盘加载到内存,发生第二次IO,29在26和30之间,锁定磁盘块3的P2指针,通过指针加载磁盘块8到内存,发生第三次IO,同时内存中做二分查找拨到29,结束查询,总计三次IO。硬盘都是长方形的,打了一个封装,里面是一个圆圈,由磁盘、磁道、B柱构成。原创 2024-07-13 21:30:53 · 214 阅读 · 0 评论 -
索引是什么
(1)可以简单理解为"排好序的快速查找数据结构”(2)索引的两大功能①查找速度快②排好序(3)举例说明:在图书馆中,可以问办理借阅处的人,需要找什么书,前台的人可以搜索那本书的位置,然后转告给找书人,不用一本一本去瞧是不是要借阅的书籍;如果没有索引,图书馆的书有又很多,只能一本本寻找需要借阅的书籍了。办理借阅处的人如同索引的作用,需要找的书就是数据。(4)下图就是一种可能的索引方式示例:左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址;原创 2024-07-13 12:12:28 · 316 阅读 · 0 评论 -
SQL性能下降的原因
包含但不限于这四个还会有其它的主要是前三个是跟Java工程师相关的,着重的如何写好SQL,如何建好索引且导致索引不失效就是重点解决的任务。原创 2024-07-13 11:55:52 · 421 阅读 · 1 评论 -
MYSQL-生产环境中的数据库的表和规范
01、目标了解和掌握生产环境中的数据库的表和规范02、分析基础规范表必须要有主键,建议使用整型作为主键禁止使用外键,表之间的关联性和完整性通过应用程序代码去维护和控制表在设计之初、硬考虑到大致的数量级。若表记录数低于1000W、尽量使用单表,不建议分表。(千万和亿级别可以考虑分区即可。更大才考虑分库分表)。建议将大字段,访问频率低及不需要筛选的字段拆分到拓展表中(做好垂直拆分)(比如:商品的详情)控制单实例中表分区的总数,单个表分表的个数控制在1024以内。列设计规则合理使用字段类原创 2021-08-20 00:45:05 · 391 阅读 · 0 评论 -
MYSQL执行计划
01、目标掌握和了解explain执行计划02、作用使用explain关键字,可以模拟优化器执行的SQL语句从而知道MYSQL是如何处理sql语句的通过Explain可以分析查询语句或表结构的性能瓶颈explain:分析SQL语句执行的过程,是否走索引规则和叛变你写SQL语句是否是最优一种机制。具体作用:查看表的读取顺序数据读取操作的操作类型查看哪些索引可以使用查看哪些索引被实际使用查看表之间的引用查看每张表有多少行被优化器执行[外链图片转存失败,源站可能有防盗链机制,建原创 2021-08-20 00:44:12 · 108 阅读 · 0 评论 -
MSQY的查询计划(重点)
01、目标了解查询优化器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hjxLR4OV-1629391403875)(查询计划.assets/image-20210723212750676.png)]02、查询优化器查询优化器的作用:就是根据你执行的SQL语句,进行分析,它自动的去通过他里面提供的算法和结构。进行对你的sql执行和预判。选择一个最优的方法,进行一个执行和处理。能不能通过一些方式,来查看SQL在执行执行过程中到底是怎么确定的执行的顺序,和是否命中到了原创 2021-08-20 00:43:17 · 309 阅读 · 0 评论 -
MYSQL索引概述&查询计划
01、目标掌握索引创建的语法和规则02、概述MYSQL索引是一种数据结构:b+tree + hash 进行实现和存储架构。03、索引分类普通索引:单纯的为了加快查询速度。全文索引:针对text/longtext字段类型加索引。(es)唯一索引:加快查询速度,且约束该列的值不能重复。主键索引:和唯一功能类似,单是一张表中只能有一个主键索引,复合索引有多个。作用:普通的索引:就是未来建设的复合索引,或者组合索引,其实大部分的索引的优化都是建设普通索引全文索引:一般开发不使用,因为全文索原创 2021-08-20 00:42:44 · 132 阅读 · 0 评论 -
索引的操作
查询索引show index from table_name创建索引方式1create [UNIQUE|primary|fulltext] index 索引名称 ON 表名(字段(长度))比如:#如:create index index_name on table_name(columns...) --- 普通索引create unique index index_name on table_name(columns...) --- 唯一索引create fulltext index i原创 2021-08-20 00:42:09 · 112 阅读 · 0 评论 -
MYSQL慢SQL日志分析
01、目标了解和掌握慢SQL日志的使用02、 分析一般来说,在企业的开发中,慢SQL日志记录一般建议大家是要进行打开。默认情况慢SQL关闭关于慢SQL的认识:该日志记录着执行时间超过阈值的SQL语句。注意:慢查询日志不仅仅只记录select。也会记录update、insert,delete这种操作执行过长的记录也会被记录03、慢SQL日志的开启打开第一种方式:直接mysql配置文件my.cnf文件中进进行配置,随着服务器而进行加载(推荐)[mysqld]# 开启慢SQL查询s原创 2021-08-20 00:41:38 · 698 阅读 · 0 评论 -
MYSQL索引Btree&B+tree
01、目标掌握mysql底层索引优化的原理02、分析MySql底层的数据结构主要是基于Hash 和 B+Tree03、底层数据结构分析Btree 还是B+tree 都是通过最原始的数据的结构:二叉树B-tree树即B树,B即Balanced(平衡得意思),平衡的意思,*B-*树又称为多路平衡查找树。因为B树的原英文名称为B-tree, B-Tree是为磁盘等待外存设备设计的一种平衡查找树。每个节点包含key和data。系统从磁盘读取数据到内存时以磁盘块block为基本单位的,位于同一个磁盘块中原创 2021-08-20 00:40:56 · 110 阅读 · 0 评论 -
MYSQL索引Btree和磁盘关系
01、目标1、磁盘操作2、数据在磁盘中是如何存储的3、什么是索引4、什么是多重索引5、二叉树和多叉树6、BTree是什么7、BTree的基本操作8、B+Tree和B-Tree的区别02、概述02-01、磁盘认识参考文献1:https://www.sohu.com/a/449063502_355142参考文献2:https://blog.csdn.net/Rong_Toa/article/details/113727981注意磁盘读取数据的时候,是按照每扇区来读取数据的,每个扇区原创 2021-08-20 00:40:33 · 328 阅读 · 0 评论 -
MYSQL中InnoDB整体架构
01、了解MYSQL的innodb的整体架构Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间。共享表空间以及独立表空间都是针对数据的存储方式而言的。###01-01、In-Memory Structures(内存结构):01-02、On-Disk Structures(磁盘结构 ):1、System Tablespace:表空间, 会对应一个(ibdata1)文件:优点:可以将表空间分成多个文件存放到各个磁盘上(表空间文件大小不原创 2021-08-20 00:38:46 · 380 阅读 · 0 评论 -
MYSQL运行原理
01、图解分析02、分析网络连接层(客户端)客户端连接器(Client Connetors):能够于MYSQL建立连接的客户端,目前几乎支持所有主流的服务端编程技术,比如常见的 java、Go、c及python等等。它们通过各自API技术与MYSQL建立连接。服务层(MYSQL Server):MySQL实例,真正提供数据存储和数据处理功能的MySQL服务器进程,主要包括系统管理和控制工具,连接池,SQL接口、解析器、查询优化器和缓存六个部分:连接池(Connection Pool):负原创 2021-08-20 00:37:54 · 272 阅读 · 0 评论