docker 安装 mysql(arm64)

运维 

docker 安装 mysql(arm64)version: '3.1'services: db: image: mysql/mysql-server:8.0.22-1.1.18 restart: always container_name: mysql environme

Mysql(六)MVCC机制


Mysql在可重复读隔离级别下如何保证事务较高的隔离性,在上一篇笔记中有提到是通过MVCC(Multi-VersionConcurrencyControl)机制实现的,使用这样的机制,可以在对一行数据的读和写时,不需要通过加锁互斥的方式来保证隔离性,避免了频繁加锁互斥,而在串行化隔离级别为了保证较高

Mysql(五)事务隔离级别与锁机制


概述我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来

Mysql(四)分页&Join&Exist&count.md


分页查询平常我们的分页查询一般都是使用以下sql实现:EXPLAINSELECT*FROMemployeesorderbynamelimit10000,10;这里看似是从表中查询10条记录,实际上是在表中查询了10010条记录,将10000条记录丢弃所得到的结果,所以我们经常会发现分页查询越到后面查

Mysql(三)索引优化实战


实战前的准备创建测试表CREATETABLE`employees`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(24)NOTNULLDEFAULT''COMMENT'姓名',`age`int(11)NOTNULLDEFAULT'0'COMMENT'年

Mysql(二)Explain详解和索引最佳实践


Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈。在select语句之前增加explain关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:如果from中包含子查询,仍会执行该子查询,将结果

Mysql(一)Mysql底层数据结构


索引底层数据结构mysql底层有两种数据结构,B+Tree和HashB+TreeB+树的数据结构已在文章B+树详细说明,mysql默认索引使用就是B+Tree,并且在叶子结点做了双向指针的优化mysql默认设置每个结点的大小为16kb,通过以下sql可查看:SHOWGLOBALSTATUSlike'

Mysql小版本升级

运维 

1. 备份数据mysqldump -uroot -p --all-databases > databases.sql2.通过设置innodb_fast_shutdown=0执行慢速关闭mysql -u root -p --execute="SET GLOBAL innodb_fast

查询表字段信息sql

运维 

查询表字段信息sqlSELECTCOLUMN_NAME列名,data_type数据类型,SUBSTR(COLUMN_TYPE,INSTR(COLUMN_TYPE,'(')+1,INSTR(COLUMN_TYPE,')')-INSTR(COLUMN_TYPE,'(')-1)字段长度,if(IS_NUL