随笔分类 - 数据库 / MySQL
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
阅读全文
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 层包括连接器、查询缓存、分析
阅读全文
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
阅读全文
mysqldump基本使用
摘要:mysqldump基本使用 mysqldump 是 MySQL 自带的逻辑备份工具 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原 语法: Us
阅读全文
MySQL之EXPLAIN 详解
摘要:MySQL之EXPLAIN 详解 使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈 用法: Explain+SQL Explain 执行后返回的信息: id(表的读取顺序) select 查询
阅读全文
QueryRunner查询返回值为int的数据
摘要:public int queryGoodsTotalCount() { //sql String sql="select count(*) as num from t_shop_info"; //执行sql try { return ((Long)queryRunner.query(sql,new
阅读全文
jdbc简单应用
摘要:jdbc简单应用 1、jdbc概述 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 2、jdbc的好处 jdbc提供标准操作数据库的api,不管使用那
阅读全文