随笔分类 - 数据库
MySQL主从复制实践
摘要:MySQL主从复制实践 多个数据库间主从复制与读写分离的模型 在一主多从的数据库体系中,多个从服务器采用异步的方式更新主数据库的变化;业务服务器在执行写或者相关修改数据库的操作是在主服务器上进行的,读操作则是在各从服务器上进行 Mysql 主从复制的实现原理图大致如下 MySQL 之间数
阅读全文
Linux安装MySQL(8.0)
摘要:Linux安装MySQL(8.0) 下载安装包,官网地址:http://dev.mysql.com/downloads/mysql/ 将安装包上传至服务器并解压,eg: tar -zxvf mysql-8.0.34-linux-glibc2.17-x86_64.tar.gz 将解压后的文
阅读全文
MySQL在一个事务中发生死锁问题记录
摘要:# MySQL在一个事务中发生死锁问题记录 背景:公司有个删除产品的需求,产品表和多张表关联,删除产品时其相关联数据也需要删除 写完代码进行测试时,发生报错: ,ZIP Archive 版本即可 2、下载后解压 3、配置环境变量: 变量名:MYSQL_HOME
阅读全文
Mongodb的基本操作
摘要:Mongodb 的基本操作 官方文档:https://www.mongodb.com/docs/manual/crud/ 数据库相关操作 显示所有数据库 show dbs; show databases; 进入指定数据库 use 数据库名; 创建文档时,如果文档所在的集合或数据库不存在会自动创建该数
阅读全文
Windows安装Mongodb
摘要:Windows 安装 Mongodb 官方文档:https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-windows-unattended/ 目前 MongoDB 官网已经不支持32位安装包的下载,由于32位机器受地址空间的限
阅读全文
MySQL行锁
摘要:MySQL行锁 该文摘抄自林晓斌老师的文章 MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB 是支
阅读全文
MySQL全局锁和表锁
摘要:MySQL全局锁和表锁 该文摘抄自林晓斌老师的文章 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构 根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类 这里需要说明的是,
阅读全文
MySQL索引(下)
摘要:MySQL索引(下) 该文摘抄自林晓斌老师的文章 在上一篇文章中,介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表T中,如果我执行 select * from T where k between 3
阅读全文
MySQL索引(上)
摘要:MySQL索引(上) 该文摘抄自林晓斌老师的文章 索引是一种数据结构,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的"目录" 索引的常见模型 索
阅读全文
MySQL事务隔离
摘要:MySQL事务隔离 该文摘抄自林晓斌老师的文章 提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱 转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体
阅读全文
MySQL日志系统
摘要:MySQL日志系统 该文摘抄自林晓斌老师的文章 之前你可能经常听 DBA 同事说,MySQL 可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢 我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c: mysq
阅读全文
MySQL基础架构及一条SQL查询语句是如何执行的
摘要:MySQL 基础架构及一条SQL查询语句是如何执行的 该文摘抄自林晓斌老师的文章 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分 Server 层包括连接器、查询缓存、分析
阅读全文
Redis中Geospatial类型数据基本使用
摘要:Redis中Geospatial类型数据基本使用 Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作 下面介绍一些Ge
阅读全文
redis配置文件常用配置解释
摘要:redis配置文件常用配置解释 include # 在这里包含一个或多个其他配置文件 # 可以使用include作为最后一行来覆盖配置,因为Redis总是使用最后处理的行作为配置指令的值,"include"不会被命令"CONFIG REWRITE"重写 # eg: include /path/to/
阅读全文
MySQL之DDL语句
摘要:MySQL之DDL语句 DDL语句是数据定义语言:主要由create、 alter、 drop和truncate四个关键字完成 操作数据库 -- 查看所有数据库 SHOW DATABASES; -- 切换(选择要操作的)数据库 USE 数据库名; -- 创建数据库 CREATE DATABASE [
阅读全文
MySQL之DML语句
摘要:MySQL之DML语句 DML语句是数据操作语言,它是对表记录的操作(增、删、改) 插入数据 -- 在表名后给出要插入的列名,其他没有指定的列等同与插入null值。所以插入记录总是插入一行,不可能是半行。 在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应 INTERT INTO 表名(
阅读全文
MySQL之DQL语句
摘要:MySQL之DQL语句 DQL是MySQL的数据查询语言 查询所有列 SELECT * FROM 表名; 查询指定列 SELECT 列1 [, 列2, ... 列N] FROM 表名; 完全重复的记录只一次 当查询结果中的多行记录一模一样时,只显示一行。一般查询所有列时很少会有这种情况,但只查询一列
阅读全文
MySQL读写锁
摘要:MySQL读写锁 读锁(共享锁) 当MySQL的一个进程(sessionA)为某一表开启读锁后,其他的进程包含自身都没有权利去修改这张表的内容。但是所有的进程还是可以读出表里面的内容的 sessionA可以继续对该数据表加写锁,其他session也可以对该数据表继续加读锁但不能加写锁,直到sessi
阅读全文
MySQL慢查询日志
摘要:MySQL慢查询日志 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中 假如运行时间正好等于long_query_time的情况,并不会被记录下来。也就是说,在m
阅读全文
浙公网安备 33010602011771号