如何实现MySQL底层优化:事务锁的高级性能优化和避免死锁的方法 引言: 在数据库系统中,事务锁是保证数据一致性和并发访问的重要机制之一。然而,在高并发场景下,事务锁可能会导致性能问题和死锁。为了提高MySQL性能,我们需要对事务锁进行高级性能优化,并采取措施避免死锁的发生。本文将介绍MySQL底层事务锁的高级性能优化方法和避免死锁的技巧,并提供具体的代码示例。 一、事务锁的高级性能优化方法 降低锁粒度 在MySQL中,锁粒度是指锁的范围大小。较大的锁粒度会导致并发访问受限,较小的锁粒度则会增加锁争用的可能性。因此…

2023年11月15日 0条评论 571点热度 0人点赞 路灯 阅读全文

#!/bin/bash export PATH=/bin:/usr/bin:/usr/local/bin # 备份目录名称 TODAY=`date +"%Y-%m-%d-%H-%M-%S"` # 备份文件存放路径 DB_BACKUP_PATH='/data/backup/database' # 数据库服务器地址 MYSQL_HOST='127.0.0.1' MYSQL_PORT='3306' # 备份账户,建议创建一个只读账户使用 MY…

2023年05月26日 0条评论 1078点热度 0人点赞 路灯 阅读全文

今天在处理一个 MySQL 数据转移到 MariaDB 上,mysqldump 导出数据有10多G,在导入数据时提示: 错误1193(HY000):未知系统变量’GTID_PURGED’ 这个问题处理也简单,就是 MariaDB 中没有 GTID_PURGED 变量,在导出的 sql 文件中把: SET @@GLOBAL.GTID_PURGED='xxx' 一句注释掉就行了,但问题是文件有10多个G,直接打开编辑就等着服务器死机吧~ 先用 less 命令找到行号吧: less -N dump.s…

2023年02月15日 0条评论 1392点热度 0人点赞 路灯 阅读全文

在PHP服务器和数据库服务器中使用PDO连接的话是明文传输的,如果在网络监听的话会有数据泄漏的风险。 在正式生产环境应当使用自签名SSL证书连接。 MariaDB数据库服务器配置见:《MariaDB MySQL 使用自签名SSL连接》 记录下PHP的PDO连接: <?php try { $options = array( PDO::MYSQL_ATTR_SSL_KEY => '/data/www/test/certs/client-key.pem', PDO::MYSQL_ATTR_…

2023年02月06日 0条评论 1374点热度 0人点赞 路灯 阅读全文

1. 数据库版本 MariaDB [(none)]> select version(); +--------------------+ | version() | +--------------------+ | 10.8.6-MariaDB-log | +--------------------+ 1 row in set (0.000 sec) 2. 配置文件 # 在[mysqld]下添加 log-bin = /data/mariadb-binlog/mariadb-log # binlog日志路径,格式…

2023年02月05日 0条评论 1484点热度 0人点赞 路灯 阅读全文

加密是一个永恒的话题,一般的做法是在程序中做好加密再存入数据库中,实际上数据库本身就带有了强大的加密功能,在开发时可以将加密减密部分丢给数据库处理,以减轻程序负担。 1. 加密减密函数 1.1 不可逆哈希函数 MD5()、SHA1()、SHA2() MariaDB [(none)]> select MD5('1234'), SHA1('1234'); +----------------------------------+------------------------…

2023年02月05日 0条评论 1409点热度 0人点赞 路灯 阅读全文

MariaDB在10.1.3版本中加入了支持表加密和表空间加密的特性,在10.1.7版本加入了支持binlog加密的特性,这使得我们可以对数据文件和binlog进行加密,避免数据文件、binlog等文件被窃取后破解出关键数据。 一. MariaDB的加密特性 1. innodb表空间加密 2. innodb日志加密 3. binlog加密 4. aria表加密 5. 临时文件加密 加密特性的一些限制: 1. 元数据文件(.frm)目前尚未加密; 2. 目前只有MariaDB server才能解密,mysqlbinl…

2023年02月05日 0条评论 1334点热度 0人点赞 路灯 阅读全文

1. 字符串函数 完整的内置字符串函数见《官方手册》。 1.1 字符串连接函数 有两个字符串连接函数:concat(s1,s2,s3,...,sN)和concat_ws(sep,s1,s2,s3,...,sN)。 concat()将多个字符串连接起来形成一个长字符串。它会尝试将字符全部转换为字符型,如果存在null,则直接返回null。 MariaDB [(none)]> select concat('a','b',1),concat(1,2,3),concat(�…

2023年02月04日 0条评论 1529点热度 0人点赞 路灯 阅读全文

1,查询当天(今天)的数据 SELECT * FROM order WHERE TO_DAYS(order_time) = TO_DAYS(NOW()) 2,查询昨天的数据 SELECT * FROM order WHERE TO_DAYS(NOW()) - TO_DAYS(order_time) = 1 3,查询最近7天的数据(包括今天一共7天) SELECT * FROM order where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(order_time) …

2023年02月04日 0条评论 1374点热度 0人点赞 路灯 阅读全文

前言 在使用 MySQL 数据库管理系统时,选择一个合适的存储引擎是一个非常复杂的问题。不同的存储引擎都有各自的特性、优势和使用的场合,正确的选择存储引擎可以提高应用的使用效率。 存储引擎 为了能够正确地选择存储引擎,必须掌握各种存储引擎的特性。下面重点介绍几种常用的存储引擎,它们对各种特性的支持如下表所示。   MySQL存储引擎特性汇总和对比 特性 MyISAM Aria InnoDB MEMORY CSV BlackHole 存储限制 有 有 支持 有 有 无 事务安全 不支持 不支持 支持 不支持…

2023年01月01日 0条评论 1577点热度 0人点赞 路灯 阅读全文
12