标签: mysql

10 篇文章

Mysql-如何快速地复制一张表
1、 mysqldump 方法 使用 mysqldump 方法会生成一个 .sql 文件,使用命令执行文件即可复制表成功。 mysqldump -h$host -P$port -u$user --add-locks [--no-create-info] --single-transaction  --set-gtid-purged=OFF…
Mysql-查询机制和join关键字
一、MySQL 的查询机制 MySQL是“边读边发”的。 获取一行,写到 net_buffer 中。这块内存的大小是由参数 net_buffer_length 定义的,默认是 16k。 重复获取行,直到 net_buffer 写满,调用网络接口发出去。 如果发送成功,就清空 net_buffer,然后继续取下一行,并写入 net_buffer。 如…
Mysql-Kill杀死连接
前言: 在数据库运维过程中,我们时常会关注数据库的连接情况,比如总共有多少连接、有多少活跃连接、有没有执行时间过长的连接等。数据库的各种异常也能通过连接情况间接反应出来,特别是数据库出现死锁或严重卡顿的时候,我们首先应该查看数据库是否有异常连接,并杀掉这些异常连接。 1.查看数据库连接 查看数据库连接最常用的语句就是 show processlis…
Mysql-恢复误删数据
在开发或运维工作中,误删数据是每个数据库管理员或开发人员都可能遇到的噩梦。 场景1:手抖执行 DELETE FROM orders 漏掉 WHERE 条件,全表数据瞬间消失。场景2:误操作 DROP TABLE customer,生产环境的客户表被删除。场景3:备份文件损坏或未及时更新,导致无法回滚。但别慌!只要提前做好准备(如开启 binlog、…
MySQL-幻读及数据持久化机制
三、幻读 InnoDB 的默认事务隔离级别是可重复读,可重复读的条件下,一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没看到的行,称之为幻读。 幻读仅在当前读下才会出现,且仅专指“新插入的行”。 注 :在可重复读的隔离级别下,普通的查询是快照读,不会看到别的事务插入的数据。当前读,读取的是数据的最新版本,需要获取到对应记录的锁。…
MySQL-orderby 运行机制及性能优化
一、orderby 运行机制 1.1 全字段排序 orderby 的执行流程: 1、初始化 sort_buffer,确定需要放入的字段(需要查询的字段)。 2、获取字段的值,放入 sort_buffer 中。 3、对 sort_buffer 中的数据按照指定字段做排序。 4、将排序后的结果返回给客户端。 orderby 排序的位置: 排序这个动作可…
MySQL-执行速度变慢的原因及性能优化
MySQL 为什么偶尔执行速度变慢 “脏页”:当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。 “干净页”:内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。 MySQL 执行偶尔变慢一会可能就是在刷脏页(flush)。 5.1 什么情况会引发数据库的 flush 过程呢? InnoDB 的 redo …
MySQL-索引和锁
三、索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 3.1 InnoDB的索引模型 在 InnoDB 中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。 InnoDB 使用了 B+ 树索引模型,所以数据都是存储在 B+ 树的。 每一个索引在 InnoDB 里面对应一棵 B+ 树。 B+ 树能够很好地配合磁…
MySQL学习-事务
2.1 隔离性与隔离级别 SQL 标准的事务隔离级别: 读未提交(read uncommitted):一个事务还没提交时,它做的变更就能被别的事务看到。 读提交(read committed):一个事务提交之后,它做的变更才会被其他事务看到。 可重复读(repeatable read):一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据…
MySQL学习— SQL 语句是如何执行的
1.1 MySQL 逻辑架构图 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyI…