代码改变世界

随笔分类 -  MySQL

探索MySQL 8的事务数据字典:数据库对象信息存储

2023-08-14 09:53 by abce, 100 阅读, 收藏, 编辑
摘要: MySQL 8带来了重大的架构变革,用事务数据字典(TDD)这种更高效、更可靠的方法取代了传统的基于MyISAM引擎的系统表。这一升级极大地改进了元数据的管理和存储,从而提高了各种数据库对象的可靠性和可扩展性。本文将通过实际案例探讨MySQL 8事务数据字典的复杂性、优势及其在现实生活中的应用。 I 阅读全文

MySQL 8.0长事务查看

2023-08-10 09:32 by abce, 64 阅读, 收藏, 编辑
摘要: 查看长时间运行的事务: SELECT thr.processlist_id AS mysql_thread_id, concat(PROCESSLIST_USER,'@',PROCESSLIST_HOST) User, Command, FORMAT_PICO_TIME(trx.timer_wait 阅读全文

MySQL 8.0中的invisible功能

2023-08-06 16:37 by abce, 411 阅读, 收藏, 编辑
摘要: 在本文中,将讨论mysql 8.0中的几个新功能和一个旧功能。·invisible columns·generated invisible primary keys·invisible indexes 不可见的列(invisible columns)不可见的列功能自8.0.23版开始实现的。什么是不 阅读全文

如何监控MySQL数据库的还原进度

2023-08-04 21:00 by abce, 780 阅读, 收藏, 编辑
摘要: 还原MySQL数据库的备份是一项重要任务,有时可能很耗时,尤其是对于大型数据库。监控还原过程的进度对于估计完成时间和确保一切顺利进行至关重要。 在本文中,将探讨计算MySQL还原过程进度百分比的两种不同而有效的方法。 1.Linux本地输入/输出(I/O)统计信息 2.管道查看工具 通过这些方法,我 阅读全文

MySQL在线修改varchar列的注意事项和方法

2023-08-03 11:23 by abce, 386 阅读, 收藏, 编辑
摘要: 在数据库管理中,alter table操作是修改数据库结构的关键部分。mysql从5.6版开始提供在线操作,提供了一种在不锁定表的情况下执行这些更改的便捷方法。不过,这也有一些注意事项。在本文中,将探讨在线修改varchar列的过程,深入了解在扩大此类列的大小时获得的启发。 假设有以下表定义,该表要 阅读全文

MySQL中动态SQL的解决方法:预处理语句

2023-08-01 11:09 by abce, 922 阅读, 收藏, 编辑
摘要: 动态SQL是一种很好的特性,允许开发人员在运行时动态构建和执行SQL语句。虽然MySQL缺乏对动态SQL的内置支持,但本文介绍了使用预处理语句(prepared statements)的变通方法。将探讨如何利用预处理语句实现动态查询执行、参数化查询以及动态表和列查询。 了解预处理语句(prepare 阅读全文

是否应将业务逻辑保存在数据库中?

2023-08-01 08:42 by abce, 156 阅读, 收藏, 编辑
摘要: 开源数据库架构师通常不会在数据库中实现业务逻辑。这与许多商业数据库的普遍做法形成了鲜明对比。在开源数据库中,所有启发式方法都保留在应用层,数据库对数据质量几乎没有影响。在商业数据库中,管理的要求规则由数据库本身处理,而不是依赖软件开发人员对规则的充分认识。 开源世界中的这一立场的部分原因是,过去在M 阅读全文

LSM树学习笔记(2)

2023-07-24 21:12 by abce, 36 阅读, 收藏, 编辑
摘要: SSTables LSM(log-structured merge-tree)树使用排序字符串表(SSTable:Sorted Strings Table)格式持久化到磁盘。顾名思义,SSTable是一种用于存储键值对的格式,其中的键是按排序排列的。SSTable由多个被称为段的有序文件组成。这些段 阅读全文

LSM树学习笔记

2023-07-23 18:48 by abce, 218 阅读, 收藏, 编辑
摘要: LSM-Tree即log structured merge tree。LSM-Tree是许多高度可扩展的NoSQL分布式键值类型数据库(如亚马逊的DynamoDB、Cassandra和ScyllaDB)的基础数据结构。众所周知,这些数据库在设计上支持的写入率远远超过传统关系数据库所能提供的写入率。 阅读全文

MySQL8.0中utf8mb4的强大:释放多语言数据的全部潜能

2023-07-15 14:05 by abce, 673 阅读, 收藏, 编辑
摘要: 在现代网络应用中,支持多种语言和字符集变得越来越重要。随着全球化的兴起,存储和处理多语言数据的需求已变得至关重要。MySQL作为最流行的关系数据库管理系统之一,它意识到了这一需求,并在其8.0版本中引入了utf8mb4,从而改变了游戏规则。在本文中,我们将通过实际示例探讨utf8mb4及其在MySQ 阅读全文

MySQL从5.7升级到8.0后可能的回退方法

2023-07-12 10:01 by abce, 1017 阅读, 收藏, 编辑
摘要: MySQL从5.7升级到8.0后,可以降级的一些途径: ·从8.0逻辑导出,然后导入5.7 ·使用5.7的复制 ·还原升级前的备份,并追赶在8.0中新生成的数据 1.逻辑导出和导入降级 虽然MySQL 5.7到5.6官方支持逻辑降级:但是从8.0降级到5.7却并非如此。官方文档只是简单提到不支持,因 阅读全文

碎片对MySQL的影响

2023-07-10 20:23 by abce, 293 阅读, 收藏, 编辑
摘要: 常见的碎片类型 ·Segment Fragmentation:段产生了碎片;没有按照数据的顺序存储,或者在数据页之间有空的页 ·Tablespace Fragmentation:表空间中存储的是非连续的文件系统块 ·Table Fragmentation:表中数据不是按照主键的顺序存储的。或者表的页 阅读全文

使用MySQL Shell备份和还原MySQL

2023-07-01 21:31 by abce, 1179 阅读, 收藏, 编辑
摘要: MySQL Shell是MySQL的高级客户端和代码编辑器。除了提供的SQL功能之外,与MySQL类似,MySQL Shell还为JavaScript和Python提供脚本功能,并包含用于使用MySQL的API。X DevAPI使用户能够处理关系型和文档数据,强烈建议MySQL Server 8.0 阅读全文

使用mysql shell将MariaDB迁移到MySQL

2023-06-28 11:23 by abce, 152 阅读, 收藏, 编辑
摘要: 源库:mariadb 10.6目标库:mysql 8.0.32 MySQL Shell Overview: 1.查看源库大小 SELECT sys.format_bytes(sum(data_length)) DATA, sys.format_bytes(sum(index_length)) IND 阅读全文

"Regexp AND LIKE"优化方法

2023-06-21 15:25 by abce, 73 阅读, 收藏, 编辑
摘要: 与大多数数据库一样,MariaDB允许在WHERE子句中使用正则表达式进行查询。虽然这功能很强大,但在数据库中使用regexp的一个问题是它无法利用索引。原因很简单:查询优化器无法理解正则表达式,也无法对它们的返回值做出假设。 这篇文章提出了一个微不足道但反直觉的优化,有时可以解决这个限制。 对于下 阅读全文

InnoDB的并发线程配置

2023-06-14 18:02 by abce, 99 阅读, 收藏, 编辑
摘要: InnoDB使用操作系统线程来处理用户事务的请求。(事务在提交或回滚之前可能会向InnoDB发出许多请求)在具有多核处理器的现代操作系统和服务器上,上下文切换非常高效,大多数工作负载都可以很好地运行,而不会限制并发线程的数量。 在有助于最小化线程之间的上下文切换的情况下,InnoDB可以使用一些技术 阅读全文

查看MySQL中自增ID的使用情况

2023-06-14 11:17 by abce, 117 阅读, 收藏, 编辑
摘要: SELECT t.TABLE_SCHEMA AS `schema`, t.TABLE_NAME AS `table`, t.AUTO_INCREMENT AS `auto_increment`, c.DATA_TYPE AS `pk_type`, ( t.AUTO_INCREMENT / (CASE 阅读全文

MariaDB/MySQL的null值条件和索引

2023-06-13 22:13 by abce, 162 阅读, 收藏, 编辑
摘要: 对于应用程序来说,像这样使用WHERE条件并不罕见: WHERE status = 'DELETED' OR status IS NULL 如果运行EXPLAIN,这样的条件通常只会导致type列显示为ref_or_null。然而,如果没有NULL检查,它将显示为ref。 但是,这是否意味着执行过程 阅读全文

MySQL8中binlog过期参数

2023-05-25 10:30 by abce, 2094 阅读, 收藏, 编辑
摘要: binlog_expire_logs_seconds 设置二进制日志过期时间(以秒为单位)。二进制日志文件过期后,可以被自动删除。可能的删除发生在启动时和刷新二进制日志(flush logs、或日志容量超过max_binlog_size的设置)时。 默认的二进制日志过期时间为2592000秒,即30 阅读全文

使用连接控制插件保护MySQL连接安全

2023-05-18 15:56 by abce, 766 阅读, 收藏, 编辑
摘要: connection_control插件是在MySQL 8.0中引入,并支持向后移植到MySQL 5.7和MySQL 5.6。 在一定次数的连续登录失败尝试后,连接控制插件允许管理员增加服务器对连接的响应延迟。没有得到服务器的响应之前,未经授权的用户或客户端不知道密码是否正确。因此,如果攻击者通过生 阅读全文
上一页 1 2 3 4 5 6 7 8 ··· 16 下一页
点击右上角即可分享
微信分享提示