MySQL

MySQL

MySQL

25810 文章 话题 12423 浏览

在 Windows 搭建 Nginx+PHP+MySQL 运行环境

  • 在 Windows 搭建 Nginx+PHP+MySQL 运行环境
  • 在 Windows 搭建 Nginx+PHP+MySQL 运行环境
  • 在 Windows 搭建 Nginx+PHP+MySQL 运行环境
  • 在 Windows 搭建 Nginx+PHP+MySQL 运行环境

流程 下载安装包 安装 Nginx 安装 PHP 连接 Nginx 和 PHP 编写启动脚本代替命令行启动 Nginx 和 PHP 安装 MySQL 步骤一、安装包下载 Nginx 下载:http://nginx.org/en/download.html 这里博主选择的稳定版,需要什么版本自己按需下载啊 PHP 下载:http://php.net/downloads.php 同上,选择自己需要的版…

JSmiles 2022-03-29 浏览 948 评论 0 收藏 0

MySQL 锁

所有普通的 select 语句在已提交读、可重复读的隔离级别下都是一致性读,也就是使用 MVCC 进行的读取操作。而在有些场景下,如果只允许读取记录的最新版本,我们就需要加锁。使用 MVCC 的话,读-写操作并不冲突,而使用加锁操作的话,读-写操作需要排队执行。 排它锁(Exclusive Lock)/ X锁:事务对数据加上X锁时,只允许此事务读取和修改此数据,并且其它事务不能对该数据加任何锁; …

JSmiles 2022-02-08 浏览 1038 评论 0 收藏 0

MySQL 事务的隔离级别与 MVCC

事务并发执行会遇到的问题 脏写:一个事务修改了另一个未提交事务修改过的数据。这样会导致其中一个事务明明进行了修改,但最终却发现并没有修改 脏读:一个事务读到了另一个未提交事务修改过的数据 不可重复读:一个事务每次读一个记录时,都能读到其他已提交事务对这条记录的最新的修改。也就是虽然该事务读到的都是已提交事务做的修改,但在同一个事务内,每次读同一条记录的结果可能是不同的 幻读:当同一查询多次执行时,…

JSmiles 2022-02-03 浏览 842 评论 0 收藏 0

MySQL 查询优化原理

当我们向 MySQL 服务器发送一个 SQL 语句之后,服务器在真正执行前会对这条语句进行一系列操作,其中就包括查询优化,也就是选择这条语句的执行方案。这篇文章就来解释一下查询优化的原理。阅读这篇文章需要你已经掌握 InnoDB 索引的原理。 找出所有可能的执行方案 同一个查询语句可以有不同的执行方案,而 MySQL 的查询优化器会找出执行该语句所有可能使用的执行方案,找到其中成本最低的方案,这个…

JSmiles 2022-01-28 浏览 842 评论 0 收藏 0

Koa 中使用 MySQL 数据库

封装思路 koa 依赖 co,其中间件对非阻塞异步代码的要求必须是 Yieldables 列表中的形式,而 mysql 库是回调函数的形式。因此,我们需要进行封装,使其接口符合要求。 目前我找到了四种方法,前三种使用开源库,第四种自己动手,将 express 下的 dbHelper 层封装成 co 最新支持的 Promise 形式。 实现方法一(co-mysql) co-mysql 和 mysql…

JSmiles 2022-01-27 浏览 1171 评论 0 收藏 0

MySQL 事务之 redo log

  • MySQL 事务之 redo log
  • MySQL 事务之 redo log
  • MySQL 事务之 redo log
  • MySQL 事务之 redo log

事务的原子性、隔离性、一致性、持久性这些就不在这里介绍了。InnoDB引擎支持事务而MyISAM不支持。MySQL中事务的自动提交默认是开启的,也就是如果我们不显式开启事务,那么每条语句就默认算是一个独立的事务。接下来重点介绍redo日志。 之前 Buffer Pool 的时候说过,当对数据页进行修改之后,不是立即刷新到磁盘,而是先存在Buffer Pool里的,而事务又需要保证持久性,也就是即使…

JSmiles 2022-01-25 浏览 892 评论 0 收藏 0

MySQL 查询优化

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

JSmiles 2022-01-22 浏览 1125 评论 0 收藏 0

MySQL InnoDB 的 Buffer Pool

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

JSmiles 2022-01-19 浏览 1005 评论 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 2022-01-19 浏览 910 评论 0 收藏 0

MySQL 索引

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

JSmiles 2022-01-18 浏览 916 评论 0 收藏 0

MySQL InnoDB 数据页的结构

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

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

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

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

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

JSmiles 2022-01-13 浏览 763 评论 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 浏览 899 评论 0 收藏 0

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

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

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

mysqldbcompare MySQL 数据库比较工具

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

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

简介

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

更多

推荐作者