在如今互联网业务中使用范围最广的数据库无疑还是关系型数据库MySQL,之所以用"还是"这个词,是因为最近几年国内数据库领域也取得了一些长足进步,例如以TIDB.OceanBase等为代表的分布式数据库,但它们暂时还没有形成绝对的覆盖面,所以现阶段还得继续学习MySQL数据库以应对工作中遇到的一些问题,以及面试过程中关于数据库部分的考察. 今天的内容就和大家聊一聊MySQL数据库中关于并发控制.事务以及存储引擎这几个最核心的问题.本内容涉及的知识图谱如下图所示: 并发控制 并发控制是一个…
一 . 两次写提出的背景或要解决的问题 两次写(InnoDB Double Write)是Innodb中很独特的一个功能点.因为Innodb中的日志是逻辑的,所谓逻辑就是比如插入一条记录时,它可能会在某一个页面(这条记录最终被插入的位置)的多个偏移位置写入某个长度的值,例如页头的记录数.槽数.页尾槽数据.页中的记录值等.这些本是一些物理操作,而Innodb为了节省日志量及其它原因,设计为逻辑处理的方式,即在一个页面上插入一条记录时,对应的日志内容包括表空间号.页面号.将被记录的各个列的值等内容,…
一.概述 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能 就会导致我们说的脏写. 胀读和不可重复读.幻读这些问题. 这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制.锁机制.MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题.接下来,我们会深入讲解这些机制,让大家彻底理解数据库内部的执行原理. 二.事务及其ACID属性 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称…
详解Mysql分布式事务XA(跨数据库事务) 学习了:http://blog.csdn.net/soonfly/article/details/70677138 mysql执行XA事物的时候,mysql相当于资源管理器,客户端相当于事务管理器: 使用两阶段协议(2pc, two phase commit protocal),第一阶段准备,第二阶段提交/回滚: 准备就是把多个事务资源都申请到,提交/回滚就是进行事务提交或者事务回滚: 从客户端角度来看,好像还是一个事务.…
[深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步——确定查询语句的查询对象个数0x04 注射第二步——UNION联合查询 0x05 注射第三步——MySQL基础信息收集 0x06 注射第四步——通过利用点GET敏感表及列 0x07 注射第五步——通过已知表.列GET数据 0x01 MySQL注射的简单介绍 MySQL的注射,我们已经在第4篇文章的演示…
不多说,直接上干货! 写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentOS6.5版本)和cloudermanager(基于CentOS6.5或Ubuntu14.04版本). (2)  大数据集群范围包括3节点和4节点.本人都尝试过. (3)  安装搭建包括离线和在线.本人都尝试过 (4)  版本包括自定义指定和官方最新版本搭建.本人都尝试过. (5) 大数据集群节点的增…
MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) 占用的存储空间比 int(4) 要小, int(4) 占用的存储空间比 int(8) 小. 后来,参看 MySQL 手册,发现自己理解错了. int(M): M indicates the maximum display width for integer types. 在 integer 数据类…
MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. b.…
原文地址:MySQL存储过程详解  mysql 存储过程作者:王者佳暮 mysql存储过程详解 1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序…
第一步: Cloudera Manager安装之Cloudera Manager安装前准备(Ubuntu14.04)(一) 第二步: Cloudera Manager安装之时间服务器和时间客户端(Ubuntu14.04)(二) 第三步: Cloudera Manager安装之Cloudera Manager 5.6.X安装(tar方式.rpm方式和yum方式) (Ubuntu14.04) (三) 第四步: Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版…