阿里云数据库Inventory Hint技术分析
秒杀场景是电商系统中最具挑战性的场景之一,其核心痛点在于超高并发请求(百万级甚至千万级QPS) 与 有限库存 之间的矛盾,以及由此引发的 系统崩溃、超卖、不公平 等问题。阿里通过一套精密的架构和算法组合拳来解决这些问题,Inventory Hint 是其中关键的一环。
核心目标
稳定性: 在极 ...
GreatSQL连接数被打满的3种紧急解决方案
GreatSQL连接数被打满的3种紧急解决方案
背景
使用数据库时,偶尔会出现数据库连接数飙升的场景,最严重的情况是连接打满,root 用户无法获取到连接,登陆数据库失败。这时候无法登录数据库kill 掉相关的数据连接,影响数据库的稳定性。下面将对这类的故障的处理进行详述。
场景复现
设置max_connections 为500
greatsql> ...
MySQL中用户及权限管理(mysql8.0版本)
概述
在MySQL中,用户与权限管理属于关键的安全机制,能让你对数据库的访问进行精准控制
MySQL用户管理
创建用户信息
语法
CREATE USER username@'host' IDENTIFIED [WITH 密码插件] BY 'password' ;
参数解析:
username:表示要创建的用户名
host:指定用户登录时所用的主机,可以是具体的 IP 地址、网段、域名,也可以 ...
MySQL secure_file_priv路径异常导致数据库服务无法启动
某个MySQL安装在Windows下,某同事在通过into outfile命令导出本地数据库的数据到secure_file_priv指定的路径后,连同secure_file_priv文件夹以“剪切”的方式拿走了,也就是secure_file_priv指定的路径不存在了,随后经过N天之后,服务器重启后发现MySQL无法启动。
参考如下,通过手动启动的方式无法启动, ...
6-2 MySQL 数据结构选择的合理性
6-2 MySQL 数据结构选择的合理性
@目录6-2 MySQL 数据结构选择的合理性1. 全表查询2. Hash 查询3. 二叉搜索树4. AVL 树5. B-Tree6.B + Tree7. R树8. 小结附录:算法的时间复杂度9. 最后:
这篇文章是我蹲在《尚硅谷》-康师傅博主家的 WiFi 上(不是),连夜 Ctrl+C / V 俩的镇站神文。
这篇转载只是为了,跟大家分享好内容 ...
MySQL 查询语句的执行顺序
整理了下MySQL查询语句的执行顺序。
(1) FROM
(2) ON
(3) JOIN
(4) WHERE
(5) GROUP BY
(6) WITH (CUBE|ROLLUP)
(7) HAVING
(8) SELECT
(9) DISTINCT
(10) ORDER BY
(11) LIMIT
(1) FROM 子句 - 首先执行
FROM employees e
MySQL 会先读取 FROM 子句中的表信息
(2) ON 条件 - 连接条件过滤
JOIN departments ...
MySQL高可用代理ProxySQL
安装
系统为ubuntu20.0
wget https://github.com/sysown/proxysql/releases/download/v2.4.2/proxysql_2.4.2-ubuntu20_amd64.deb
dpkg -i proxysql_2.4.2-ubuntu20_amd64.deb
原本想用编译安装的,编译了30多分钟,启动的时候提示无法打开配置文件,无语了,只能用deb包安装
默认安装位置:
proxysql.cnf:/etc/proxysql.cn ...
MySQL 派生表查询导致 Crash 的根源分析与解决方案
MySQL 派生表查询导致 Crash 的根源分析与解决方案
一、问题发现
在之前的 MySQL 8.0.32 使用中,发现使用以下带有派生表的 SQL 会导致 MySQL Crash,以下的sequence_table(2)替换为任何非常量表都行:
仅 MySQL 8.0.32 版本有影响。
EXPLAIN FORMAT=TREE
select
trim(ref_15.c_ogj),
0<>0 as c_lrcm63eani
...
RHEL 9.0 安装 MySQL 8.0
RHEL 9.0 安装 MySQL 8.0
安装 MySQL 服务器软件包:<font style="color:rgb(21, 21, 21);">sudo dnf install mysql-server</font>
报错处理:
使用 sudo yum install mysql-server --nogpgcheck命令
检查安装:mysql --version
启动mysqld服务:<font style="color:rgb(21, 21, 21);">systemctl start mysqld.servi ...
MySQL派生条件下推优化导致自定义变量结果错误问题分析
MySQL派生条件下推优化导致自定义变量结果错误问题分析
1. 问题描述
现场 MySQL 8.0.25 版本运行中,发现带有用户变量的SQL执行结果集与预期不符。复现场景如下:
-- 起锅烧油,连接 MySQL 8.0.25 数据库
mysql -uroot -S /var/lib/mysql/mysql-8.0.25-linux-x86_64/mysql-test/var/tmp/mysqld.1.sock -p
-- 执行以下SQL
...
华为openEuler安装MYSQL数据库
openEuler离线部署MYSQL常见问题
一、MYSQL软件包安装完成后,无法启动服务,报错:
""Job for mysqld.service failed because the control process exited with error code.""
""See "systemctl status mysqld.service" and "journalctl -xeu mysqld.service" for details.""
(1)权限问题:/var/lib/mysql目录权限不够
处 ...
MySQL中用rename命令间接实现数据库的重命名
实际上MySQL不支持重命名数据库(修改数据库的文件路径名不行),所以只能间接实现,这里使用rename的方式,将表从一个库“转移”到另一个库。如下代码可以将db01库下面的表“转移”到db02下。
SELECT CONCAT('rename table db01.',table_name,' to db02.',TABLE_NAME,';') AS rename_table
FROM information_schema.`TABLE ...
针对大事务问题对业务存储过程改造
针对大事务问题对业务存储过程改造
一、问题描述
1. 问题现象
业务调用存储过程没有成功,发现存在大事务,单独拿出来执行发现问题。
greatsql> INSERT INTO
`ywdb1`.`t1`(
`TIMEKEY`,
`zbbh`,
`zcbl`,
`zcblms`,
`zjzh`,
`zjzhms`,
`cbzh`,
`ljzjzh`,
`xmbh`,
`xmmc`,
`sfgj`,
`dd`,
`ddsm`,
...
在Oracle到GreatSQL迁移中排序规则改变引发的乱码问题分析及解决
一、引言
某老系统数据库从 Oracle 迁移至 GreatSQL 过程中,首批迁移(存储过程、表结构、基础数据)顺利完成。然而,第二批数据迁移时出现主键冲突问题:原Oracle数据库中存在主键字段A与a(忽略大小写后视为相同值),但 GreatSQL 默认排序规则 utf8mb4_0900_ai_ci 不区分大小写,导致主键冲突。
为解决此问题,将排序规 ...
GreatSQL Hash Join 条件列长度对执行计划的影响
GreatSQL Hash Join 条件列长度对执行计划的影响
一、问题发现
在一次开发中发现当执行 Hash Join 用 VARCHAR 字段作为连接的时候,字段长度长短不同时候,执行计划也不一样。看下面3个例子。
1、连接条件字段长度为20的场景
greatsql> CREATE TABLE t1 (c1 INT, c2 varchar(20)) CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ ...
ABP框架结合Entity Framework(非Core版)与MySQL实现大数据量高效分页查询解决方案
在ABP框架结合Entity Framework(非Core版)与MySQL实现大数据量高效分页查询****时,需结合MySQL特性与EF的分页机制进行优化。以下是具体方案及实现要点:
一、避免使用传统LIMIT OFFSET
传统Skip().Take()在EF中会转换为LIMIT OFFSET,当数据量达到百万级时性能急剧下降。优化策略:
基于主键/唯一索引分页
通过记录上 ...
Linux系统搭建单机MySQL8.0.26版本
概述
本文主要是写Ubuntu22.04搭建MySQL8.0.26版本
环境信息
IP
系统
规格
10.0.0.10
Ubuntu22.04
2c4g
数据库服务安装步骤
下载前置依赖
# 下载libtinfo5、libnuma1依赖
[root@lb ~]# apt update -y && apt install -y libtinfo5 libnuma1
服务下载
方式一:进入官网下载,并上传到宿主机中,适合离线环境
官网 ...
mysql入门之1小时学会MySQL基础
目录MySQL入门MySQL管理6. 启动及关闭 MySQL服务器:7. MySQL 用户设置8. 管理MySQL的命令MySQL 连接10.使用MySQL二进制方式连接11.使用 PHP脚本连接 MySQLMySQL 创建/删除数据库12.使用 mysqladmin创建数据库13.使用 PHP脚本创建数据库MySQL 选择数据库14.使用PHP脚本选择MySQL数据库MySQL 创建/删除数据表15.MySQ ...