2018-10-05
MySQL中逻辑主键与业务主键对比

逻辑主键:没有业务含义,比如自增主键

业务主键:有业务含义,比如person表用身份证号当主键

插入性能

用逻辑主键的情况下,插入的过程中需要定位到页再插入,效率上会比直接追加到最后一个数据页要低很多。

阅读此文

2018-09-21
MySQL中乐观锁的两种实现方式

使用锁场景

在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:

更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。

脏读:一个事务读取另一个事物为提交的数据,即为脏读。

阅读此文

2018-08-11
mysql中varchar(20)与varchar(255)区别

首先看下为什么MySQL中varchar会经常设置成varchar(255)?

MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。

阅读此文

2018-07-01
mysql存储时间类型对比

将时间转成int存储

占用4个字节

建立索引之后,查询速度快

范围查询可以使用between

不能使用MySQL提供的时间函数

结论:适合进行大量时间范围查询的场景

阅读此文

2018-01-04
binlog复制的三种模式

mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。

对应地,binlog的格式也有三种:STATEMENT,ROW,MIXED

阅读此文

2015-07-10
mysql随机更新表里的数据

mysql 随机更新数据库里的几条数据

有些情况,比如下图表中数据,除了id不一样,其余都一样。如下图:

出于某些原因,我们不能得到其id,但是想更新其中的某些数据,不是全部,因为数据都是一样的,所以更新其中的哪一条都是一样的。
那么要更新其中的比如3条数据怎么办呢?

阅读此文

2015-07-04
mysql批量备份多表

1. 批量备份 mysql 多表,每个表一个.sql

对于每天生成的表,需要把以前的表备份,即定义起始的表和结束的表,针对有规律的表的备份。

阅读此文