摘要:varchar(M) 能存多少个字符,为什么提示最大16383?innodb怎么知道varchar真正有多长?记录为NULL,innodb如何处理?某个列数据占用的字节数非常多怎么办?影响每行实际可用空间的因素有哪些?本篇围绕innodb默认行格式dynamic来说说原理。 本文分享自华为云社
摘要:并发的事务在运行过程中会出现一些可能引发一致性问题的现象,本篇将详细分析一下。 本文分享自华为云社区《MySQL读取的记录和我想象的不一致——事物隔离级别和MVCC》,作者:砖业洋__。 事务的特性简介 1.1 原子性(Atomicity) 要么全做,要么全不做,一系列操作都是不可分割的,如果
> 阿里巴巴开发手册https://developer.aliyun.com/special/tech-java # 一、建表规约 **1.1表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint(1表示是,0表示否)。** tip:POJO(Domin)类
当谈到MySQL的执行计划时,会有很多同学想:“我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强,凭什么优化器做的决定与我得不一样?”。这个问题在MySQL 5.6之前或许自己很难解决,但是现在MySQL5.6及更高的版本中引入了Optimizer Trace。
在mysql未支持json数据类型时,我们通常使用varchar、blob或text的数据类型存储json字符串,对mysql来说,用户插入的数据只是序列化后的一个普通的字符串,不会对JSON文档本身的语法合法性做检查,文档的合法性需要用户自己保证。在使用时需要先将整个json对象从数据库读取出来,在内存中完成解析及相应的计算处理,这种方式增加了数据库的网络开销并降低处理效率
本文从EXPLAIN分析SQL的执行计划开始,进行示例展示,并对输出结果进行解读,同时总结了EXPLAIN可产生额外的扩展信息以及EXPLAIN的估计查询性能,整篇文章基于MySQL 8.0编写,理论支持MySQL 5.0及更高版本。
MySQL服务端配置对使用方来说是不可更改的,需要联系DBA进行操作。这些配置操作对我们来说是一个黑盒,但是了解核心配置可以帮助我们快速定位数据库问题原因。
本次种子题目主要涵盖了MySQL的存储引擎和索引结构,如B+树索引和哈希索引,以及覆盖索引和回表的概念。此外,还包含了MySQL事务的ACID特性和隔离级别。另外,对MySQL主从集群中的binlog日志的执行顺序和作用进行了讨论。最后,还涉及了分库分表和读写分离的概念。这些内容涵盖了MySQL数据库的核心知识和重要技术,不仅在面试中起到关键作用还对于优化数据库性能和应用开发都具有重要意义。
大家好,接着上次和大家一起学习了《MySQL DDL执行方式-Online DDL介绍》,那么今天接着和大家一起学习另一种MySQL DDL执行方式之pt-soc。
MySQL隔离级别 读未提交(Read Uncommitted):某个事务读到了其他还未提交的事务对数据所作的修改,也就是某个事务只要修改了数据,其他事务就可以看到所作的修改。 这种隔离级别下会发生脏读、不可重复读、幻读。 读提交(Read Committed):某个事务提交之后,才可以被其他事务看
查询结果导出到文件 终端命令下直接导出 除了在mysql命令行下导出查询结果,还可以在终端直接导出查询结果到文件中: mysql -uroot -p -e "select * from test" > xxx.csv 如果导出结果中涉及到中文,可以使用--default-character-set=
MySQL的索引是一种数据结构,它可以帮助数据库系统更高效地获取数据。以下是MySQL索引的一些主要特性和使用方法: 1. **索引类型**:MySQL支持多种类型的索引,包括B-Tree索引、哈希索引、全文索引、空间索引等。其中,B-Tree索引是最常用的索引类型。 2. **创建索引**:你可以
MySQL 存储过程是一种强大的数据库功能,它允许你在数据库中存储和执行一组SQL语句,类似于编程中的函数。存储过程可以大幅提高数据库的性能、安全性和可维护性。本文将详细介绍MySQL存储过程的使用。 什么是MySQL存储过程? MySQL存储过程是一组预编译的SQL语句,它们以一个名称存储在数据库
分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。下面将详细介绍MySQL如何分表以及分表后如何进行数据查询。 基于哈希的分表 基于哈希的分表是一种将数据分散到多个子表中的数据库分表策略。这种方法通
MySQL存储过程、索引和分表是用于提高查询效率的三种不同方法,它们各自对查询效率有不同的影响和应用场景。以下是它们的对比: MySQL存储过程: 影响查询效率: 存储过程通常不直接影响查询效率,因为它们是用于封装查询逻辑和执行多个SQL语句的数据库对象。存储过程主要有助于减少网络通信的开销,特别是
MySQL表分区是一种数据库管理技术,用于将大型表拆分成更小、更可管理的分区(子表)。每个分区可以独立进行维护、备份和查询,从而提高数据库性能和管理效率。以下是详细介绍MySQL表分区的步骤和注意事项: 步骤1:选择分区列 首先,你需要选择一个适当的列作为分区键(Partition Key),根据这
在 MySQL 中,你可以使用多种命令和语句来执行列操作,包括添加、修改、删除列等。以下是一些与列操作相关的常用 MySQL 命令和语句: 1. 添加列: 添加新列到表格中:ALTER TABLE table_name ADD COLUMN column_name datatype; 2. 修改列:
隔离级别相关面试题 MySQL事务隔离级别 未提交读——可以读到其他事务未提交的数据(最新的版本) 错误现象:脏读、不可重复读、幻读的现象 提交读(RC)——可以读到其他事务已提交的数据(最新已提交的版本) 错误现象:不可重复读、幻读现象 使用场景:希望看到最新的有效值 可重复读(RR)——在事务范
一、DQL介绍 DQL全称:Data Query Language(数据查询语言),用来查询数据库中表的记录。 关键字:select 二、DQL语法 select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序
一、介绍 DCL:Data Control Language(数据控制语言),用来管理数据库用户,控制数据库的访问,权限。 二、用户管理 1、查询用户 语法: 1、use MySQL; 2、select * from user; 默认只有四个账户。 2、创建用户 语法:create user '用户