分类目录归档:MySQL

MySQL二进制安装


1.下载mysql

MySQL社区版下载

https://downloads.mysql.com/archives/community/

image20200223135527926.png

2.二进制安装

2.1指定安装

将mysql安装到/usr/local/mysql目录中:

# Centos7安装依赖
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel

# Ubuntu22.04 安装依赖
sudo apt update
sudo a...

Read more

MySQL管理


MySQL 管理

1 系统数据库

Mysql 数据库安装完成后,自带了一下四个数据库,具体作用如下:

数据库 含义
mysql 存储 MySQL 服务器正常运行所需要的各种信息 (时区、主从、用 户、权限等)
information_schema 提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类 型及访问权限等
performance_schema 为 MySQL 服务器运行时状态提供了一个底层监控功能,主要用于收集 数据库服务器性能参数
sys 包含了一系列方便...

Read more

MySQL优化


SQL 优化

1.插入数据

  • 批量插入数据
insert into table values(col1,col2),(col1,col2);
  • 手动控制事务
start transaction;
...
commit
  • 主键顺序插入
1,2,3,4,5,78,99
  • 大批量插入
-- 客户端连接服务端时,加上参数 -–local-infile
mysql –-local-infile -u root -p

-- 设置全局参数local_infile为1,开启从本地加载文件导入数据...

Read more

MySQL存储引擎


MySQL存储引擎

1.存储引擎

存储引擎就是存储数据、建立索引、更新、查询数据等技术的实现方式。

1.1 MySQL 体系结构

MySQL体系结构

image-20240829092301203

连接层

主要完成一些类似于连接处理、授权认证、及相关的安全方案。

服务层

主要完成大多数的核心服务功能,如 SQL 接口,并完成缓存的查询,SQL 的分析和优化,是否使用索引,部分内置函数的执行。

引擎层

存储引擎真正的负责了 MySQL 中数据的存储和提取,服务器通过 API 和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需...

Read more

MySQL事务


MySQL事务

事务简介

事务是一组操作集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

图片

图片

图片

图片

注意:

MySQL的事务默认自动提交的,也就是说,当执行完一条DML语句时,MySQL会立即隐式提交事务。

事务操作

数据准备

drop table if exists account;
create table account(
    id int primary key AUTO_INCREMENT comment ...

Read more

MySQL高可用架构


MySQL高可用架构

图片

前言

对于 MySQL 数据库作为各个业务系统的存储介质,在系统中承担着非常重要的职责,如果数据库崩了,那么对于读和写数据库的操作都会受到影响。如果不能迅速恢复,对业务的影响是非常大的。这次我们来学习MySQL 双主 + Keepalived 的高可用落地和踩坑之路。

一、方案选择

对于 MySQL 的高可用,主要分为两步,配置 MySQL 主主模式和 keepalived 软件。拓扑图如下所示:

图片

MySQL 数据库的主主模式

两个数据库分别部署在两台服务器上,相互同步数据,...

Read more

使用ProxySql实现MySQL的读写分离


ProxySQL简介

1、ProxySQL是一款开源的使用C++编写的MySQL集群代理中间件;

2、用于在MySQL数据库和客户端之间进行负载均衡、查询缓存、故障转移和查询分发;

3、它可以作为中间层插入到应用程序和数据库之间;

4、特点是高效灵活,使用简单,并且性能是所有中间件中比较优秀的。

5、在搭建好mysql的主从复制后,可以利用ProxySQL实现mysql数据库的读写分离;

主要功能

ProxySQL主要支持MySQL的主从集群和组复制集群,其主要功能有以下几个:

1、代理服务:代理后端...

Read more

MySQL六十六问


MySQL六十六问

1.什么是内连接、外连接、交叉连接、笛卡尔积呢?

  • 内连接(inner join):取得两张表中满足存在连接匹配关系的记录。
  • 外连接(outer join):不只取得两张表中满足存在连接匹配关系的记录,还包括某张表(或两张表)中不满足匹配关系的记录。
  • 交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选,它是笛卡尔积在SQL中的实现,如果A表有m行,B表有n行,那么A和B交叉连接的结果就有m*n行。
  • 笛卡尔积:是数学中的一个概念,例如集合A={a,b}...

Read more

什么是分库分表?


1.什么是分库分表?

简单的说就是,通过某种特定的条件,将我们存放在共一个数据库中的数据分散存放到多个数据库(主机)上,以达到分散单台设备负载的效果。

分库:就是一个数据库分成多个数据库,部署到不同机器。

图片

分表:就是一个数据库表分成多个表。

图片

2.为什么需要分库分表?

2.1为什么需要分库呢?

如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考虑拆分数据库。从这几方面来看:

磁盘存储

  • 业务量剧增,MySQL单机磁盘容量会撑爆,拆成多个数据库,磁盘使用率大大降低。

并发连接支撑

  • 我...

Read more

MySQL 锁


1 锁的概述

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

image-20240905151233838

查看锁

select object_schema,object_name,index_name,lock_type,lock_mode,lock_data fr...

Read more