end's coding life

赤子之心

Mysql EXPLAIN详解

在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解...

2018-05-10 10:39:27

阅读数:84

评论数:0

BTree和B+Tree详解

B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。 B 树又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的特性如下: 树中每个结点最多含有m个孩子(m>=2); 除根结点和叶子结点外,其它每个结点至少有[...

2016-06-20 14:05:45

阅读数:32410

评论数:10

Mysql事务隔离级别与锁

数据库的事务有几种特性,例如一致性和隔离性,一般通过加锁来实现。同时数据库又是一个高并发的应用,如果加锁过度或者不当将严重影响性能。数据库提供了几种隔离级别来供选择,本文通过解析InnoDB的加锁机制是如何实现几种隔离级别,来更深刻的理解mysql的锁。    两阶段锁     首先,...

2016-05-29 12:49:31

阅读数:4487

评论数:0

Innodb中的事务隔离级别和锁的关系

前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中Inno...

2016-05-29 12:48:24

阅读数:9045

评论数:0

REPEATABLE-READ事务隔离级别 && 间隙锁

表结构 create table t(  name varchar(255) primary key,  id int not null,  key idx_id (id) ); insert into t(name,id) values ('a',15), ('b',10),('c',6),(...

2016-05-27 17:49:53

阅读数:815

评论数:0

MySQL_REPEATABLE-READ事务隔离级别 && 幻读

表结构 create table t1(     a int primary key,     b int not null     ) REPEATABLE-READ可重复读(一) 这里打开两个mysql的命令行窗口,窗口A,即session1,窗口B,即sessi...

2016-05-27 17:25:26

阅读数:1372

评论数:0

InnoDB存储引擎MVCC的工作原理

InnoDB存储引擎的行结构 MySQL官方手册https://dev.mysql.com/doc/refman/5.7/en/innodb-multi-versioning.html Internally, InnoDB adds three fields to each r...

2016-05-27 17:20:25

阅读数:1118

评论数:0

MySQL 加锁处理分析

背景   MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运...

2016-05-27 11:30:01

阅读数:7117

评论数:1

Mysql优化相关总结

优化顺序: 选择适当的引擎和表结构和数据类型建立索引,优化sql。增加缓存,redis、memcache。主从、主主,读写分离。mysql自带分区表根据业务耦合垂直拆分,分布式数据库水平拆分,选择合理的sharding key。 引擎区别与选择: Innodb采用...

2016-05-27 09:14:32

阅读数:7826

评论数:1

Mysql----索引实现剖析与实践

摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常...

2016-03-08 10:12:29

阅读数:698

评论数:0

Mysql----游标的嵌套循环

游标的嵌套循环,下面列举了3种嵌套循环(loop-loop,loop-while,loop-repeat). 程序用到的表和数据 CREATE TABLE tb_dic_class (   class_id int(11) DEFAULT NULL,   class_name varchar(...

2016-03-05 14:35:16

阅读数:512

评论数:0

Mysql----主从数据库配置

MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器。所以我在项目部署和实施中经常会采用这种方案.+ 数据库目录及其它my.cnf配置文...

2014-12-02 16:41:56

阅读数:430

评论数:0

Mysql----浅入浅出之事务处理及其他

并不是所有数据库引擎都支持事务处理,例如,InnoDB支持,er

2014-08-11 18:02:38

阅读数:590

评论数:0

Mysql----浅入浅出之视图、存储过程、触发器

一、视图 VIEW 视图是虚拟的表,本身不存储任何数据。只有运行时,才包含动态检索出来的数据。 eg:SELECT sid, name, sex, s_num FROM  student, school WHERE sid = 2 AND student.sid = scholl.sid ; ...

2014-08-11 15:50:38

阅读数:728

评论数:0

Mysql----浅入浅出之插入删除等操作

一、数据插入 INSERT

2014-08-11 10:50:07

阅读数:445

评论数:0

Mysql----浅入浅出之JDBC连接

JDBC连接数据库的步骤: 一、在开发环境中加载驱动: 我用的是Mysql,所以下载了mysql-connector-java-5.1.24-bin.jar。 在eclipse中建立新项目,在项目的buildpath中引入这个包。 二、在程序中加载驱动: 通过Class.forN...

2013-04-11 12:24:08

阅读数:707

评论数:0

Mysql----浅入浅出之查询

一、 SELECT 语句的语法如下: SELECT selection_list 选择哪些列 FROM table_list 从何处选择行 WHERE primary_constraint 行必须满足什么条件 GROUP BY grouping_columns 怎样对...

2013-04-09 19:59:11

阅读数:1034

评论数:0

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