MySQL的innodb引擎是如何实现MVCC的

innodb会为每一行添加两个字段,分别表示该行创建的版本和删除的版本,填入的是事务的版本号,这个版本号随着事务的创建不断递增。在repeated read的隔离级别(事务的隔离级别请看这篇文章)下,具体各种数据库操作的实现: select:满足以下两个条件innodb会返回该行数据: 该行的...

2018-08-22 14:12:16

阅读数 52

评论数 0

深入解析Mysql 主从同步延迟原理及解决方案

MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器。相信大家对于这些好处已经非常了解了,在项目的部署中也采用这种方案。但是MySQL的...

2018-06-04 10:33:54

阅读数 68

评论数 0

悲观锁、乐观锁的区别及使用场景

定义:悲观锁(Pessimistic Lock): 每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。乐观锁(Optimistic Lock):...

2018-05-31 09:52:03

阅读数 876

评论数 0

数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)

一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。√: 可能出现    ×: 不会出现脏读不...

2018-02-09 10:19:23

阅读数 94

评论数 0

MySQL中MyISAM与InnoDB区别及选择

2018-02-08 10:39:13

阅读数 285

评论数 0

MySQL分区与分片的差异

要了解分区与分片之间的差异,首先我们需要知道什么是分片与分区。 分片:分片Sharding 不是一门新技术,而是一个相对简朴的软件理念。众所周知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 mysql 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具备分区功能就成...

2018-01-23 19:55:51

阅读数 1365

评论数 0

mysql into outline 导出数据到文件 --where

//导出投资数据 select *  from activity  where activity_id=62 INTO OUTFILE '/tmp/fifty_2017'  //导出18服务器少量数据的sql  mysqldump  -uroot -p12345678  ba...

2017-05-31 09:56:37

阅读数 414

评论数 0

MySQL通过binlog来恢复数据

一、什么是binlog 1、binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中; 二进制日志的信息: 文件位置:默认存放位置为数据库文件所在目录下 文件的命名方式: 名称为hostname-bin.xx...

2017-04-19 14:46:26

阅读数 158

评论数 0

mysql主从同步原理

//主从同步 实际上,你读的主库和从库都可以,但是写的肯定是进入到主库里,然后从库在读binlog,从库同步 binlog文件是以二进制形式保存的 主库执行 SQL 写Binglog 同步到从库执行 什么叫同步,就是insert 或者update或者delete 都会操作主库,每执...

2017-01-04 14:52:16

阅读数 259

评论数 2

mysql 性能优化方案 (转)

网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用 status信息对mysql...

2016-11-16 17:31:56

阅读数 178

评论数 0

MySQL查询某个字段属性值重复出现的次数

在某些时候,我们需要在MySQL中查询某个字段属性值重复的次数:   select category , count(*) AS count from publication_has_category      group by category order by count DESC     ...

2016-01-21 09:23:17

阅读数 9092

评论数 0

Mysql常见水平分表方案

根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉;水平分表能够很大程度较少这些压力。 1.按时间分表 这种分表方式有一定的局限性,当数据有较强的实效性,如微博发送记录、微信消息记录等,这种数据很少有用户会查询几个月前的数据,如就可以按...

2016-01-11 10:38:32

阅读数 528

评论数 1

mysql 最左前缀原则使用

    最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)...

2019-01-09 15:26:28

阅读数 20

评论数 0

MySQL 分区月分区

id和分区的日期key组成主健,将一个表按月份拆分成12个分区 CREATE TABLE `gt_stk_2018` (   `id` bigint(20) NOT NULL AUTO_INCREMENT,   `stockCode` varchar(100) DEFAULT NULL COM...

2019-01-04 10:58:40

阅读数 22

评论数 0

乐观锁和悲观锁的使用方式

悲观锁(Pessimistic Lock) 悲观锁的特点是先获取锁,再进行业务操作,即“悲观”的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作。通常所说的“一锁二查三更新”即指的是使用悲观锁。通常来讲在数据库上的悲观锁需要数据库本身提供支持,即通过常用的select … fo...

2018-12-03 17:47:31

阅读数 35

评论数 0

mysql创建分区

1.需要将日期和主键设置为主键 CREATE TABLE `stat_stock_all` (   `date` date NOT NULL,   `code` varchar(255) NOT NULL,   `name` varchar(255) DEFAULT NULL,   `chang...

2018-11-21 19:03:04

阅读数 12

评论数 0

MySQL count(1) count(*) 比较 详解

count(*) 将返回表格中所有存在的行的总数包括值为 null 的行,然而 count(列名) 将返回表格中除去 null 以外的所有行的总数 (有默认值的列也会被计入),这点对于所有数据的 COUNT 计算都是一样的 count(1) 与 count(*) 比较 : 1&g...

2018-11-13 22:22:56

阅读数 12

评论数 0

mysql 数据库varchar(100)可以存储多少个汉字,多少个数字

具体还是要看版本的 4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)  5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。 自己在数据库中...

2018-10-31 17:21:52

阅读数 59

评论数 0

mysql中tinyint(1)与tinyint(2)的区别

tinyint 型的字段如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数。 tinyint 型的字段如果不设置UNSIGNED类型,存储-128到127的整数。 1个tinyint型数据只占用一个字节;一个INT型数据占用四个字节。 这看起来似乎差别不大,但是在比较大的...

2018-10-31 16:49:05

阅读数 184

评论数 0

decimal这个数据类型的用法

笔者在网上搜了好久,解释都晦涩难懂。最后通过亲手实践加课本知识得出结论如下:  decimal(M,N)  M表示:不包括小数点,不包括符号位,所能存数字的总位数(包括小数部分和整数部分)  N表示:小数部分数字的位数,由此可知整数部分的位数为M-N; 举个例子,  decimal(4,2) 能...

2018-10-31 16:23:05

阅读数 93

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭