MySQL

MySQL

MySQL

4466 文章 12115 话题 6012 浏览

MySQL 查询优化

这部分其实就是搞懂对于我们写的 SQL 语句,MySQL 是怎么执行的,比如是会全表扫描,还是走聚簇索引,还是二级索引,等等。为了了解查询优化,首先我们需要来看两部分,在进行单表查询时有哪些方法,以及表连接是什么原理。 单表查询 也就是 select * from users where email = "XXX" 这样的语句,对一张表进行查询。有以下几种方式: const:通过主键或者 uniq…

JSmiles 7小时以前 浏览 914 评论 0 收藏 0

MySQL InnoDB 的 Buffer Pool

虽然 InnoDB 是基于磁盘的存储引擎,但是磁盘交互的速度还是太慢了,不可能每次都去读取磁盘。因此我们需要有缓存,在 MySQL 中,Buffer Pool 就是一片连续的内存空间,用来缓存页的数据。默认 128M,也可以自己设置。 Buffer Pool 的空间主要可以分为两部分,一部分是缓存的页的数据,每个缓存页的大小都是16KB,一部分是控制信息,如图: 当 MySQL 从磁盘中读取了一个…

JSmiles 3天以前 浏览 916 评论 0 收藏 0

MySQL 事务之 undo log

  • MySQL 事务之 undo log
  • MySQL 事务之 undo log
  • MySQL 事务之 undo log
  • MySQL 事务之 undo log

上面说的 redo 日志主要是满足事务持久性的要求。而事务还有一个要求就是原子性,也就是执行过程中如果出错了,或者手动 ROLLBACK,需要把已经修改的地方都改回事务开始前的状态。这个时候就要靠 undo 日志(undo log)了,和 redo 日志类似,undo 日志就是把在事务执行过程中的增、删、改操作都记下来(查询操作不需要记录 undo 日志)。 MySQL 会为涉及了增删改操作的事务…

JSmiles 3天以前 浏览 743 评论 0 收藏 0

MySQL 索引

如果只有之前讲的数据页,虽然在页内可以实现根据主键快速定位记录,但我们可以看到在有很多页的情况下还是只能遍历。所以我们需要更强大的方式来定位数据。 索引的数据结构是一个 B+ 树,在非叶子节点上的目录项页,页中的每条目录项记录都存储了一个主键值和页号,这个主键值就是页号对应的页中的最小的主键值。在叶子节点上,则存储了完整的用户记录页。 上边介绍的,在叶子节点里存放完整的用户记录的索引,其实就是聚簇…

JSmiles 4天以前 浏览 789 评论 0 收藏 0

MySQL InnoDB 数据页的结构

  • MySQL InnoDB 数据页的结构
  • MySQL InnoDB 数据页的结构
  • MySQL InnoDB 数据页的结构
  • MySQL InnoDB 数据页的结构

之前说过页是 MySQL 管理存储空间的基本单位,一个页一般是 16KB。MySQL 一次会将整个页加载到内存中(原因:内存速度远大于磁盘速度)。现在来看一下 InnoDB 中存放表中记录和索引的页的结构。了解了索引页的结构可以帮助我们了解后面使用索引查找为什么那么快。 先看数据页的结构,整体如下图: 比较简单的一些字段快速过一下:File Header 和 Page Header 是一些通用信息…

JSmiles 2022-01-14 浏览 729 评论 0 收藏 0

InnoDB 引擎中一条记录是怎样存储的

页是 MySQL 中磁盘和内存交互的基本单位,也是 MySQL 管理存储空间的基本单位。一个页一般是 16KB,当记录中的数据太多,当前页放不下的时候,会把多余的数据存储到其他页中,这种现象称为行溢出。 记录在磁盘上的存放方式称为 行格式,InnoDB 存储引擎到现在为止设计了 4 种不同类型的行格式,分别是 Compact、Redundant、Dynamic 和 Compressed 行格式。 …

JSmiles 2022-01-13 浏览 679 评论 0 收藏 0

egg-mysql 用于 egg 框架的阿里云 rds 客户端

egg-mysql 是一个用于 egg 框架的阿里云 rds 客户端,支持 mysql portocal。 安装 $ npm i egg-mysql --save Egg 的 MySQL Plugin,支持 egg 应用访问 MySQL 数据库。本插件基于 ali-rds,具体用法可参考 ali-rds 文档。 配置 更改 ${app_root}/config/plugin.js 以启用 MySQ…

JSmiles 2022-01-11 浏览 760 评论 0 收藏 0

wamp 修改空密码以及设置虚拟站点

近来重装了一下 wamp,索性记录一下,wamp 安装完后,我的常用配置。首先,肯定要修改默认的空密码;其次,便要配置虚拟站点,因为当项目多的时候,每个项目分配成一个站点,对于开发来说,很方便管理。其实网上已有很多这方面的文章,但大部分说的都不够详细,有的只能在 www 目录内,所以借着这次重装 wamp 的机会整理一下笔记。 修改 wamp 空密码 启动 wamp 后,左键点击 wamp 图标-…

噩梦成真你也成魔 2021-12-15 浏览 846 评论 0 收藏 0

mysqldbcompare MySQL 数据库比较工具

mysqldbcompare 用于比较两个服务器或同个服务器上的数据库,有文件和数据,并生成差异性SQL语句。 要比较数据表,请用另外一个工具:mysqldiff。 以下是 mysqldbcompare 的用法。 1 安装 mysqldbcompare 是 MySQL Utilities 中的一个脚本,默认的MySQL不包含工具集,所以需要独立安装。 MySQL Utilities 下载地址:ht…

JSmiles 2021-09-10 浏览 1022 评论 0 收藏 0

使用 mysqldiff 实现 MySQL 数据表比较

本文介绍 mysqldiff 工具来比较数据表结构,并生成差异SQL语句。 mysqldiff 类似 Linux 下的 diff 命令,用来比较对象的定义是否相同,并显示不同的地方。 如果要比较数据库是否一致,可以用另外一个工具:mysqldbcompare。 以下是 mysqldiff 的用法。 1 安装 mysqldiff 是 MySQL Utilities 中的一个脚本,默认的 MySQL …

JSmiles 2021-08-27 浏览 1113 评论 0 收藏 0

Go-MySQL-Driver 中间件驱动程序连接器

特征 轻量级和 快速 本机 Go 实现。没有 C 绑定,只是纯粹的 Go 通过 TCP/IPv4、TCP/IPv6、Unix 域套接字或 自定义协议的连接 自动处理断开的连接 自动连接池(通过 database/sql 包) 支持大于 16MB 的查询 全力sql.RawBytes支持。 LONG DATA准备好的语句中的智能处理 LOAD DATA LOCAL INFILE通过文件许可名单和io…

JSmiles 2021-08-11 浏览 1241 评论 0 收藏 0

ThinkSNS Plus 简易部署与配置文档

  • ThinkSNS Plus 简易部署与配置文档
  • ThinkSNS Plus 简易部署与配置文档
  • ThinkSNS Plus 简易部署与配置文档
  • ThinkSNS Plus 简易部署与配置文档

部署前准备 服务器,建议CentOS 7.x 域名,解析到服务器公网ip 服务器安装 1、安装宝塔面板 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh 2、通过浏览器进入宝塔面板管理界面,地址默认为ip:8888,账…

JSmiles 2021-07-19 浏览 1253 评论 0 收藏 0

canal-python 阿里巴巴开源 mysql 数据库 binlog 的增量订阅 & 消费组件 python 客户端

Canal 是阿里巴巴 mysql 数据库 binlog 的增量订阅 & 消费组件 python 客户端。为 python 开发者提供一个更友好的使用 Canal 的方式。Canal 是 mysql 数据库 binlog 的增量订阅&消费组件。 基于日志增量订阅 & 消费支持的业务: 数据库镜像 数据库实时备份 多级索引 (卖家和买家各自分库索引) search build…

JSmiles 2021-07-16 浏览 1205 评论 0 收藏 0

MySQL 的触发器

一、触发器定义 进行数据库应用软件的开发时,我们有时会碰到表中的某些数据改变,希望同时引起其他相关数据改变的需求,利用触发器就能满足这样的需求。 它能在表中的某些特定数据变化时自动完成某些查询。运用触发器不仅可以简化程序,而且还可以增加程序的灵活性。 触发器是一类特殊的事务,可以监视某种数据操作(insert/update/deleted)并触发相关操作(insert/update/deleted…

JSmiles 2021-07-16 浏览 1059 评论 0 收藏 0

MySQL 事务

MySQL 底层实现事务是使用 MVCC(Multi-Version Concurrency Control)多版本并发控制,维护 版本链 和 readView 版本链:可以让本事务读取到本事务的修改,而其他事务读取稳定的版本链 readView:维护一张活跃的事务 id【200,1,4】 一、事务(Transaction)以及 ACID 属性 事务是由一组SQL语句组成的逻辑处理单元,事务具有以…

JSmiles 2021-07-16 浏览 1044 评论 0 收藏 0

简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

更多

推荐作者

意中人

文章 0 评论 0

artaime

文章 0 评论 0

用户100600860645

文章 0 评论 0

J.smile

文章 0 评论 2

qq_MVfp79

文章 0 评论 0