• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
SQL编程:隐式转换详解

SQL编程:隐式转换详解

索引问题是 SQL 问题中出现频率最高的,常见的索引问题包括:无索引,隐式转换。当数据库中出现访问表的 SQL 无索引导致全表扫描,如果表的数据量很大,扫描大量的数据,应用请求变慢占用数据库连接,连接堆积很快达到数据库的最大连接数设置,新的应用请求将会被拒绝导致故障发生。 一、什么是隐式转换? 当我们对不同类型的值进行比较的时候,为了使得这些数值「可比较」(……

MySQL分区增删改查操作

MySQL分区增删改查操作

###添加删除range分区 (1) 创建一个分区 CREATE TABLE titles ( emp_no INT NOT NULL, title VARCHAR(50) NOT NULL, from_date DATE NOT NULL, to_date DATE, KEY (emp_no), PRIMARY K……

MySQL 5.7内部临时表使用

MySQL 5.7内部临时表使用

一、MySQL中的两种临时表 外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭。这种临时表的命名与非临时表可以同名(同名后非临时表将对当前会话不可见,直到临时表被删除)。 内部临时表 内部临时表是一种特殊轻量级的临时表,用来进行性能……

MySQL备份恢复:单线程mysqldump工具原理

MySQL备份恢复:单线程mysqldump工具原理

一、mysqldump工作原理 对于搞数据库的应该都知道,mysqldump是MySQL官方提供的用于逻辑备份的工具。 mysqldump优点:mysqldump的优点就是逻辑备份,把数据生成sql形式保存,在单库,单表数据迁移,备份恢复等场景方便,sql形式的备份文件通用,也方便在不同数据库之间移植。对于innodb表可以在线备份。 mysqldump缺……

MySQL InnoDB表空间传输的用途

MySQL InnoDB表空间传输的用途

在 MySQL 中如果要迁移一个表导另外一个服务器/环境中,常规的做法就是使用备份工具备份,比如 mysqldump/mysqlpump/mydumper,然后拷贝备份到目标服务器或者环境导入。如果某一个表数据量很大,导出 dump 文件很大的情况下,使用导出导入工具其实会花费不少的时间。 怎么样提高效率呢,可以有一种想法就是直接拷贝数据文件到目标环境,当然……

MySQL InnoDB checkpoint

MySQL InnoDB checkpoint

一、Checkpoint简介 我们知道缓冲池的设计目的为了协调CPU速度与磁盘速度的鸿沟。因此页的操作首先都是在缓冲池中完成的,如果一条DML语句,如Update或Delete改变了页中记录,那么此时页是脏的,即缓冲池中的页的版本要比磁盘的新。数据库需要将新版本的页从缓冲池刷新到磁盘。 若每次一个页发生变化,就将新页的版本刷新到磁盘,那么这个开销是非常大的。……

MySQL文档存储快速入门指南

MySQL文档存储快速入门指南

一、MySQL文档存储说明 关系数据库(如MySQL)通常存储结构化数据,需要提前定义好数据的格式。而NoSQL的出现就是为了打破这种僵局,使得开发人员可以存储非结构化数据,使用文档的方式进行存储数据,无需提前定义数据格式。早先MariaDB也有对非结构化的数据进行存储的方案,称为dynamic column,但是方案是通过BLOB类型的方式来存储。这样导致……

数据库设计范式与反范式

数据库设计范式与反范式

数据库规范化,又称数据库或资料库的正规化、标准化,是数据库设计中的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。关系模型的发明者埃德加·科德最早提出这一概念,并于1970年代初定义了第一范式、第二范式和第三范式的概念,还与Raymond F. Boyce于1974年共同定义了第三范式的改进范式——BC范式。 除外还包括针对多值依赖的第四范式,连……

MySQL InnoDB自增锁和外键锁

MySQL InnoDB自增锁和外键锁

一、自增长与锁 自增长在数据库中是非常常见的一种属性,也是很多DBA或开发人员首选的主键方式。在InnoDB存储引擎的内存结构中,对每个含有自增长值的表都有一个自增长计数器。当对含有自增长的计数器的表进行插入操作时,这个计数器会被初始化,执行如下的语句来得到计数器的值: select max(auto_inc_col) from……

MySQL InnoDB外键约束详解

MySQL InnoDB外键约束详解

一、外键使用 在MySQL 3.23版本后,InnoDB引擎类型的表支持了外键约束,外键主要用于引用和参照完整性的约束检查。外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。但是外键的使用是有一些必要条件的: 1. 两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2. 外键列必须建立……

Redis PiPeline提升性能实践

Redis PiPeline提升性能实践

一、背景 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。 服务端处理命令,并将结果返回给客户端。 因此,例如下面是4个命令序列执行情况: Client: INCR X ……

Redis Cluster故障恢复机制(三)

Redis Cluster故障恢复机制(三)

在一个集群中,每个节点都会定期向其他节点发送PING命令,并通过有没有收到回复来判断目标节点是否已经下线了。具体来说,集群中的每个节点每隔1秒钟就会随机选择5个节点,然后选择其中最久没有响应的节点发送PING命令。 如果一定时间内目标节点没有响应回复,则发起PING命令的节点会认为目标节点疑似下线。疑似下线可以与哨兵的主观下线类比,两者都表示某一节点从自身的……