1.简单动态字符串(simple dynamic string, SDS)  定义:  struct sdshdr {    int len;//记录buf中使用的字节数量    int free;//记录buf中未使用的字节数量    char buf[];//字节数组,用于保存字符串    //buf字节数组以’\0’结束,但是’\0’不计算在l
转载 2023-11-26 16:35:10
73阅读
目录一. InnoDB 数据记录存储结构二. InnoDB索引页结构三. 简单总结 一. InnoDB 数据记录存储结构在使用InnoDB作为存储引擎时,最小的存储单位为页,一页大小为16384字节也就是16kb, 其中有132个字节用来保存元数据相关信息,27个字节用来保存当前记录的附加信息, 一条记录的存储结构为:变长字段列表中保存了数据类型为可变超度的例如Varchar,字段的实际长度Nu
转载 2023-11-09 09:55:36
124阅读
前言:最近学习了数据库这块的知识,看了一些视频,现在把学到的一些知识点整理出来,也为自己做个笔记。索引是什么?工作中,在数据库查询中,可能有些人觉得只要加了索引查询速度就很快,其实并不是这样子的。当然索引到底是什么东西呢?索引:索引是帮助MySQL高效获取数据的排好序的数据结构,该数据结构是存储在文件中的。上面的是一个对索引的一个解释,我们可以看出索引其实是一个数据结构。效果就是高效率获取结果。当
事物与数据库底层数据在事物进行过程中,未结束之前,DML语句是不会更改底层数据,只是将历史操作记录一下,在内存中完成记录。只有在事物结束的时候,而且是成功的结束的时候,才会修改底层硬盘文件中的数据...
原创 2023-03-09 09:57:18
86阅读
文章目录前言索引结构及查找算法不适合做MySql的数据结构及其原因一、BTree和B+Tree的引出1.1 BTree数据结构2.2 B+Tree数据结构二、计算m阶,即B+Tree该取多少合适总结 前言索引结构及查找算法一个sql语句在mysql里究竟是如何运行的呢?又是怎么去查找的呢?其中就涉及到数据库(存储数据)以及查找算法。先来看一下几种查找算法;目录查找:类似索引遍历:暴力查找二分:B
随着企业数据化进程的加快,Pyhton与“wind底层数据库”的结合变得越来越重要。本文将详细探讨如何高效解决与“wind底层数据库”有关的问题。以下内容包括背景描述、技术原理、架构解析、源码分析、案例分析和扩展讨论,目的是为读者提供一个全面的认识和实践指南。 通过这个流程,我们能够更好地理解wind底层数据库和Python如何协作,为金融数据处理提供强有力的支持。 ```mermaid fl
原创 6月前
87阅读
相关基本概念及DDL语句在这里就不赘述了,本篇文章主要聊一聊mysql底层的东西。一、架构mysql的架构,主要分为server层和引擎层,大体分布如下: mysql架构 MySQL基架大致包括如下几大模块组件:(1)MySQL向外提供的交互接口(Connectors) (2)管理服务组件和工具组件(Management Service &
转载 2023-08-30 15:03:26
153阅读
数据库的访问性能是很关键的问题,所以了解其底层实现,对于如何高效的使用接口函数非常有帮助。 SQLiteDatabase    封装create、insert、delete、query、open、close这些数据库常用接口。SQLiteDatabase对象创建时就会调用jni dbopen去打开数据库文件,dbclose关闭数据库文件,打开与关闭时都会生成
转载 2023-09-08 10:59:49
105阅读
MySql的存储结构MySQL作为一个关系型数据库,最核心也是最基本的一个功能就是存储数据,而数据的存储最终都是存储在磁盘文件上的,不过MySQL并不会像Java中那样把一个对象序列化之后直接存储到磁盘上去,因为这样的话后续就不太方便来查找数据了,所以MySQL在一行数据的存储上做了一定的设计。我们平时是以记录为单位来向表中插入数据的,我们在Navicat等客户端看到是一个表格,里面有一行一行的记
转载 2023-09-30 22:45:15
82阅读
这篇文章主要是介绍mysql底层数据结构以及算法,主要包括索引数据结构红黑树、Hash、B树、B+树;索引是怎么支撑千万级表的快速查找;面试常见问B+树索引面试题解析;联合索引底层数据结构是怎样的等问题。工作中经常遇到慢查询的问题或有时候DBA给我们发了一条慢查询SQL让我们去优化,我们第一时间想到的优化方法就是加索引,看看查询条件是不是走了索引以及啥时候走的索引,看是不是走了索引可以用exp
转载 2023-08-04 14:36:24
442阅读
# MSSQL 数据库 WinHex 底层数据分析 ## 1. 引言 随着大数据时代的到来,数据库成为了应用开发中不可或缺的一部分。MSSQL(Microsoft SQL Server)是微软开发的一种关系型数据库管理系统,被广泛应用于企业级应用开发中。WinHex是一款强大的十六进制编辑器,用于对二进制数据进行分析和编辑。本文将介绍如何使用WinHex进行MSSQL数据库底层数据分析,以及
原创 2023-09-12 09:07:53
123阅读
## 理解 MySQL 数据库 InnoDB 底层数据结构的实用指南 MySQL 是一种广泛使用的开源关系型数据库系统,其存储引擎 InnoDB 成为默认选择,因其支持事务、行级锁定和外键等特性。理解 InnoDB 的底层数据结构对于开发者优化数据库性能和设计高效的应用程序至关重要。在本文中,我们将逐步了解 InnoDB 的底层数据结构,并提供相关示例代码。 ### 流程概述 以下是学习 I
原创 10月前
40阅读
为什么要在应用程序中使用数据库数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆算法来操作数据结构。android系统集成了一个轻量级的关系型数据库:SQLite,从本质上讲,SQLite数据库底层其实就是一个数据库文件,当我们打开SQLite数据库时,其实只是打开与之对应的数
转载 2023-12-17 19:34:28
49阅读
SQLite是android中集成的一个轻量级的数据库,该数据库支持绝大部分SQL92语法SQLiteDatabase代表一个数据库底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDatabase对象,就可以使用SQLiteDatabase对象来管理、操作数据库了。SQLiteDatabase的方法:1、static SQLiteDatabase openDatabase
转载 2023-10-09 11:57:53
117阅读
导致SQL执行慢的原因? 1:硬件问题(网路慢,内存不足,io吞吐量小,磁盘满) 2:SQL没有使用索引或者索引失效 3:数据过多 4:服务器调优问题解决入口: 1:开启慢查询日志,设置阈值,在生产上执行一天,在看SQL比较慢的 2:使用explain和慢SQL分析。 3:show profile比explain更进一步的执行细节,可以查询到执行每一个SQL都干的事情,花费多长时间 4:找DBA或
所学越多,所知越少。一、介绍数据库就是存储数据的一个地方 有几种不同的存储方式 存储格式: 底层是以页存储的 默认 16kb 所说的b + 树 中间节点一页可以存储很多 叶子节点 一页可以存储就要看数据多大了 重点: 底层 已 b+ 树的格式存储数据页 (理解:已b+树的方式找到数据页) 在页上面存储 已链表链接的行数据(理解:行头中变长列值 的768 个字节作为索引 多的就放在别的里面) 分为数
转载 2023-10-18 13:51:35
142阅读
1 背景日常我们开发工作中,随着业务需求的变更,重构系统是很常见的事情。重构系统常见的一个场景是变更底层数据模型与存储结构。这种情况下就要对数据进行迁移,从而使业务能正常运行。常见的表变化有如下3种:增加、删除、修改字段,对单表结构修改进行分库分表变更底层存储系统。例如数据库选型变更当发生变更都要进行迁移。下面介绍3种常见的迁移思路。2 停服迁移法业务自身特点是非24小时提供服务,有暂停维护时间。
文章目录写在前面的话InnoDB的存储结构Tablespace常见的表空间SegmentExtentPage什么是off-pageInnoDB的文件存储格式 写在前面的话你有没有想过这样一个问题:我们的数据在MySQL中是如何存放的?它是以什么样的组织方式存放在我们磁盘中的?我们知道,数据是存放在表里面的,在表里面是一行一行存在的。那么这一行一行的数据怎么样在磁盘中存放的呢?表又是如何在磁盘上存放
importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjava.util.
文章目录前言1. 哈希表2. 简单动态字符串使用SDS的好处对比C字符串3. 压缩列表4. 跳表5. 整数集合、双向链表Redis数据类型与底层数据结构对照表 前言一谈到Redis,马上能想到的就是:“快”,Redis之所以快,一方面是因为Redis的所有操作都在内存中完成,内存操作本身就很快,另一方面就要归功于它的数据结构了,高效的数据结构是Redis快的基石,当然,也不是所有的命令执行效率都
  • 1
  • 2
  • 3
  • 4
  • 5