-
RR级别下的幻读问题
RR级别下的幻读问题 MYSQL[8.0] --- 事务A show variables like 'transaction_isolation'; [ (transaction_isolation,REPEATABLE-READ) ] begin ; select * from menu where id>3; [ 1. 结果是空 ] select * from men…- 772
- 0
-
关于数据库变长字段索引问题
关于数据库变长字段索引问题 以下问题已经测试数据来源于网上,只是针对问题做补充。 Mysql中Varchar(50)和varchar(500)区别是什么? 一. 问题描述 我们在设计表结构的时候,设计规范里面有一条如下规则: 对于可变长度的字段,在满足条件的前提下,尽可能使用较短的变长字段长度。 为什么这么规定,我在网上查了一下,主要基于两个方面 基于存储空间的考虑 基于性能的考虑 网上说Varc…- 220
- 0
-
MVCC能否解决幻读?
MVCC能否解决幻读? “幻读”指,同一个事务里面连续执行两次同样的sql语句,可能导致不同结果的问题,第二次sql语句可能会返回之前不存在的行。 先给出结论:不能笼统的说能不能解决,因为有的情况下可以解决,但是有的情况下解决不了。 可以解决的情况 mysql里面实际上有两种读,一种是“快照读”,比如我们使用select进行查询,就是快照读,在“快照读"的情况下是可以解决“幻读”的问题的…- 214
- 0
-
mysql对NULL值是怎么存储的
mysql对NULL值是怎么存储的 在mysql优化中我们建议将表中的字段设置为非NULL 理由是 索引 NULL 列需要额外的空间来保存,所以要占用更多的空间 进行比较和计算时要对 NULL 值做特别的处理 还有这里需要澄清的是一个谣言,在此之前一直坚信的一点 就是对字段进行!= 、not null 、 <>判断会导致该字段的索引失效! 为什么说这个是谣言呢? 因为你肯定没有自己动手…- 5.1k
- 0
-
MYSQL笔记(持续更新)
MYSQL 执行过程 一个UPDATE语句正在执行:UPDATE test SET idx = 2 WHERE id=10,执行流程如下(这里主要以InnoDB存储引擎体系结构中的组件为主): 在Server层进行词法解析,解析成MySQL认识的语法,查询什么表、什么字段,并生成查询路径树,选择最优查询路径。 到了InnoDB存储引擎这里,先判断id=10这行数据对应的页是否在缓冲池中,如果不在,…- 664
- 0
-
排查mysql内存占用问题
1、innodb_buffer_pool_size 这个参数定义了buffer pool的大小,大家可能都比较熟悉,buffer pool中的内容包含innodb 表、索引、以及其他的辅助buffer,buffer pool的大小对MySQL系统性能影响比较大,默认情况下,MySQL8.0配置的buffer pool大小是128MB,通常情况下,如果是单机单实例,没有其他业务,那么MySQL官方建…- 1.4k
- 0
-
Innodb优化
use sys; show status like '%Handler_read%'; select object_type, object_schema, object_name, index_name, count_star, count_read, COUNT_FETCH from performance_schema.table_io_waits_summary_by_…- 326
- 0
-
彻底搞懂 MySQL 的 explain
explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。 explain包含的字段 id //select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 select_type //查询类型 table //正在访问哪个表 partitions //匹配的分区 type //访问的类型 possible_keys //显示可…- 275
- 0