分类:数据库

记一次线上MySQL慢查询的优化

哎,这次苦逼的经历,真泥坑爹,看了一下午SQL,眼睛都快看瞎了,现在终于解决了,总结一下吧.

中午的时候运维报了一个慢SQL出来.看了一下执行计划,没发现问题,SQL如下

执行计划如下图


这执行计划能跑44秒?我擦[……]

Read More…

Read more →

MySQL中的for update

MySQL查询的时候,也可以给查询加锁的,在使用InnoDB存储引擎的时候.我们可以在SELECT语句的最后加上for update来实现查询加锁.InnoDB默认锁的粒度是行级别的,但是如果我们在使用的时候,一个表没有主键,这个时候锁的粒度会变为表级别.下面我们将对有主键和无主键的表来进行查询锁的一个实验,看锁的粒度.

[……]

Read More…

Read more →

MySQL事务总结

事务的概念:事务是指逻辑上的一组操作,这组操作要么同时完成要么同时不完成.

例如A转账给B,从数据库的角度来看,A账户的钱减少,B账户的钱增加,这样才算是一次完整的转账。

如果A在转账的过程中,出现了意外的情况,A的钱减少了,而B的钱没有增加,这次的事务就不完整。只有当两个操作同时完成时[……]

Read More…

Read more →

mongodb分布式

mongodb分布式原理:

Mongodb分布式主要包括以下几个角色:

1、shared,也可以称为分片,为了保证片的高可用性,至少需要3个mongodb的实例,这3个mongodb实例来组成一个副本集。副本集简单来说,就是一个有自动恢复功能的主从集群。我们可以设置这3个mongodb的[……]

Read More…

Read more →