分类目录归档:MySQL

什么是分库分表?


1.什么是分库分表?

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

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

图片

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

图片

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

2.1为什么需要分库呢?

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

磁盘存储

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

并发连接支撑

  • 我们知道数据库连接是有限的。在高并发的场景下,大量请求访问数据库,MySQL单机是扛不住的...

Read more

MySQL 锁


一、锁的核心作用:解决并发冲突

锁是计算机协调多个进程或线程并发访问某一资源的机制。

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

MySQL 的锁机制是保障数据一致性和并发性能的核心工具。它通过不同粒度、不同模式的锁,协调多个事务对数据的访问,避免脏读、幻读、丢失更新等问题。

数据库是多用户共享的资源,当多个事务(用户操作)同时访问同一数据时,可能引发:

    ...

Read more

MySQL函数


MySQL函数,是一种控制流程函数,属于数据库用语言。

MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。

一、数学函数

1.1、函数概述

MySQL函数是MySQL数据库提供的内部函数。这些内部函数可以帮助用户更加方便的处理表中的数据。

1.2、数学函数概述

数学函数是MySQL中常用的一类函数。主要用于处理数字,包括整型、浮点数等。

1.3、常用数学函数

1.3.1、abs()

abs(X):返回X的绝对值

mysql> select abs(-32...

Read more

MySQL二进制安装脚本


MySQL二进制安装脚本

安装版本:MySQL8.0.20

#!/bin/bash

# 设置安装版本
MYSQL_VERSION=mysql-8.0.20-linux-glibc2.12-x86_64

# 设置下载地址
DOWNLOAD_URL=https://downloads.mysql.com/archives/get/p/23/file
# DOWNLOAD_URL=http://192.168.57.200/Software

# 设置MySQL的root密码
MYSQL_PASSWORD=root123

# 设置安装路径
MYSQL_PATH=/usr/local/...

Read more

SQL练习题(二)


多表查询练习

练习题:

创建两张,一个是商品表 products,另一个是订单表 orders。请按照以下要求进行操作:

1.创建商品表(products)和订单表(orders),其中商品表包含字段:id(自动增长主键)、name(商品名称)、price(商品价格);

2.订单表包含字段:id(自动增长主键)、product_id(关联商品表的商品ID)、quantity(商品数量)、total_price(订单总价)。

3.将订单表中的 product_id 与商品表的 id 建立外键关联。

参考答案:

创建商品表和订单表:

-- 创建商品表
CREATE TABLE product...

Read more

SQL练习题(一)


SQL基础练习题

  1. 创建一个名为 “products” 的表,包含 id(自增主键)、name、price 和 quantity 字段。
  2. 插入一条 id 为 1,name 为 “Apple”,price 为 2.5,quantity 为 10 的记录到 “products” 表中。
  3. 查询 “products” 表中所有的记录。
  4. 更新 id 为 1 的记录,将 price 改为 2.75。
  5. 删除 id 为 1 的记录。
  6. 插入三条新的产品记录,要求至少包含两个不同的产品名称,并确保至少有一个产品的价格小于 10,至少一个以 “A” 开头的产品。
  7. 查询 “products” 表中所有价格大于等...

Read more

MySQL日志


MySQL日志完全指南:从原理到实战优化

前言

在MySQL数据库的日常运维中,日志是排查问题、优化性能、保障数据安全的"核心利器"。无论是服务启动失败、SQL执行缓慢,还是主从同步异常,几乎所有问题都能通过日志找到线索。本文将系统讲解MySQL各类日志的作用、配置方法、实战操作及优化策略,帮助运维人员和开发人员掌握日志管理的核心技能。

一、MySQL日志体系概述

MySQL的日志体系可分为服务器层日志(适用于所有存储引擎)和存储引擎层日志(如InnoDB特有),不同日志承担不同职责:

日志类型 所属层级 核心作用 适用场景
错误日志(Error Log) 服务器层 记录服...

Read more

MyCAT 2从入门到放弃(一)


MyCAT 2 从入门到实战(一)

img

1. 【熟悉】MyCAT2简介

1.1 什么是MyCAT

MyCAT是目前最流行的分布式数据库中间插件,是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器。前端用户可以把它看作一个数据库代理,用MySQL客户端工具和命令行访问,其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。

MyCAT发展到目前,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Serve...

Read more

MySQL高可用之MHA集群部署


MySQL高可用之MHA集群部署

01 准备工作

1.1 修改主机名

vim  /etc/hosts

# 添加对应主机
192.168.28.128 mha1
192.168.28.131 mha2
192.168.28.132 mha3

1.2 关闭防火墙及修改selinux

# 关闭防火墙
systemctl  stop  firewalld
systemctl  disable firewalld   # 关闭自启动

# 修改selinux
vim  /etc/sysconfig/selinux
SELINUX=disabled  #  设置为disabled

1.3 ...

Read more

MySQL8.0主从复制


一、什么是主从复制?

MySQL 主从复制(Master-Slave Replication)是一种数据同步机制,通过将主数据库(Master)的增量数据实时同步到从数据库(Slave),实现数据的多副本存储。

核心逻辑:主库负责处理写操作(INSERT/UPDATE/DELETE 等),从库同步主库数据后可处理读操作,从而实现「读写分离」「负载均衡」「数据备份」等核心需求。

mysqldump解决了mysql数据库的备份,它只是基于某个时间点做备份,无法解决实时备份的问题,为了解决mysql实时备份的问题,mysql官方推出了mysql主从备份机制,可以让用户通过设置mysql...

Read more