MySQL

MySQL数据库复制之GTID复制的特性具体使用

遇到的问题 从MySQL 5.6.5开始新增了一种基于GTID的复制方式。通过GTID保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。 GTID是什么 GTID (Global Transact...

MySQL数据库中where 1=1方法的使用及改进

背景 刚入行的同学,看到在SQL语句中出现where 1 = 1这样的条件可能会有所困惑,而长时间这样使用的朋友可能又习以为常。那么,你是否还记得当初为什么要这样写?是否有性能问题?有没有更好的写法? 今天这篇文章,带大家从头到尾梳理一下where 1 =...

MySQL优化之:mysql count(*) 执行慢的解决思路和方案

4、count(*) 前言: 在开发工作中,经常需要计算一个表的行数,比如一个内容系统审核记录总数。这时候我们最先想到是一条 select count(*) from my_table;语句。但是,随着系统(表)中记录数越来越多,这条查询语句执行...

MySQL 优化之:慢查询中的commit慢和binlog中慢事务的差异

常见原因总结,特殊情况除外。 一、问题来源 在分析性能问题的时候慢查询和binlog慢事务是常用的手段。最近在分析一个慢查询的,发现其中包含了大量的commit语句慢,但是在分析binlog慢事务的时候不能完成匹配。比如这段时间commit的语句可能有10...

如何解决MySQL连接Navicat设置默认字符串时的报错问题

简介 说明 本文介绍用Navicat添加字段(字符串类型)并设置默认值时的报错问题。 问题描述 在Java开发过程中,经常会遇到给已有的表添加字段的场景。 在插入新字段的时候,表里边可能已经有很多数据了,这时我们最好给新插入的字段设置一个默认值,这样MyS...

MySQL优化之:Mysql体系化探讨令人头疼的JOIN运算

前言 之前经历过从零到一初创项目,也有海量数据项目;总体来说当项目在逐渐发展过程中如何构建一个安全可靠,稳定的数据存储一直是项目中最核心、最重要、最关键部分,没有之一 接下来我会体系化输出存储系列文章;本篇文章我们先谈一下数据中一个最令人头疼的连接运算&m...

如何解决mysql幻读详解实例以及解决方法

总结 脏读/不可重复读的概念都比较容易理解和掌握,这里不在讨论 事务隔离级别(tx_isolation) mysql 有四级事务隔离级别 每个级别都有字符或数字编号 级别 symbol 值 描述 读未提交 READ-UNCOMMITTED 0 存在脏读、不...