MySQL

MySQL中隔离级别RC与RR的区别及说明

MySQL隔离级别RC与RR的区别 RR 支持 gap lock(next-key lock),而RC则没有gap lock。因为MySQL的RR需要gap lock来解决幻读问题。而RC隔离级别则是允许存在不可重复读和幻读的。所以RC的并发一般要好于RR...

MySQL分库分表后路由策略设计详情

概述 分库分表后设计到的第一个问题就是,如何选择路由key,应该如何对key进行路由。路由key应该在每个表中都存在而且唯一。路由策略应尽量保证数据能均匀进行分布。 如果是对大数据量进行归档类的业务可以选择时间作为路由key。比如按数据的创建时间作为路由k...

一文解答什么是MySQL的回表

引言 简单来说,回表就是 MySQL 要先查询到主键索引,然后再用主键索引定位到数据。 下面,对一些问题进行分析与回答: 什么是聚簇索引?什么是非聚簇索引? 为什么回表要先查到主键索引? 主键索引和非主键索引有什么区别? 如何避免回表? 聚簇索引和非聚簇索...

Mysql中使用count加条件统计的实现示例

前言 最近发现在处理Mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统计了,比如说一个常见的需求,统计每个班级男生所占的比例,这种情况一般会按照班级分组,但是分组内不但要统计班级...

mysql 索引使用及优化详情

前言 索引对有一定开发经验的同学来说并不陌生,合理使用索引,能大大提升sql查询的性能,可以这么讲,随着业务数据量的不断增长,优化系统的响应速度,很大程度上可以说就是集中在索引的优化上; mysql索引原理 在正式了解与学习mysql索引之前,先对mysq...

MySQL之MyISAM存储引擎的非聚簇索引详解

在InnoDB中索引即数据,也就是聚簇索引的那颗B+树的叶子节点中已经包含了所有完整的用户记录。MyISAM的索引方案虽然也是使用树形结构,但是却将索引和数据分开存储,这种索引也叫非聚簇索引。 create table index_demo( c1 int...

MySQL错误日志与通用查询日志图文详析

MySQL日志文件系统的组成    a、错误日志:记录启动、运行或停止mysqld时出现的问题。    b、通用日志:记录建立的客户端连接和执行的语句。    c、更新日志:记录更改数据的语句。该...

MySQL如何确定VARCHAR大小问题

抛出一个问题,如果需要存字符串到MySQL数据库里面的一张表里的某个字段,如何确定字段的长度大小? 首先不建议使用TEXT类型的,因为使用TEXT会严重影响效率,最好的方式就是使用VARCHAR并确定字段的最大长度。 我们可以先在表里定义一个字段rule_...

MySQL打印死锁日志的方法步骤

前言: 在 MySQL 运维过程中,难免会遇到 MySQL 死锁的情况,一旦线上业务日渐复杂,各种业务操作之间往往会产生锁冲突,有些会导致死锁异常。这种死锁异常一般要在特定时间特定数据和特定业务操作才会复现,有时候处理起来毫无头绪,一般只能从死锁日志下手。...