mysql
文章平均质量分 89
end
这个作者很懒,什么都没留下…
展开
-
Mysql----浅入浅出之JDBC连接
JDBC连接数据库的步骤:一、在开发环境中加载驱动:我用的是Mysql,所以下载了mysql-connector-java-5.1.24-bin.jar。在eclipse中建立新项目,在项目的buildpath中引入这个包。二、在程序中加载驱动:通过Class.forName("com.mysql.jdbc.Driver"); 来加载数据驱动程序。三、建立数原创 2013-04-11 12:24:08 · 967 阅读 · 0 评论 -
BTree和B+Tree详解
B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。B 树又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的特性如下:树中每个结点最多含有m个孩子(m>=2);除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子(其中ceil(x)是一个取上限的函数);若根结原创 2016-06-20 14:05:45 · 72276 阅读 · 26 评论 -
Mysql事务隔离级别与锁
数据库的事务有几种特性,例如一致性和隔离性,一般通过加锁来实现。同时数据库又是一个高并发的应用,如果加锁过度或者不当将严重影响性能。数据库提供了几种隔离级别来供选择,本文通过解析InnoDB的加锁机制是如何实现几种隔离级别,来更深刻的理解mysql的锁。 两阶段锁 首先,事务的所操作分为两个阶段:加锁和解锁,两者不想交。因为事务开始时,并不知道会用到哪些数据,所以加锁阶段原创 2016-05-29 12:49:31 · 6167 阅读 · 0 评论 -
Innodb中的事务隔离级别和锁的关系
前言:我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。#一次封原创 2016-05-29 12:48:24 · 10474 阅读 · 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),('d',10),('f',11),('zz',2);Session Amysql> beg原创 2016-05-27 17:49:53 · 1945 阅读 · 0 评论 -
MySQL_REPEATABLE-READ事务隔离级别 && 幻读
表结构create table t1( a int primary key, b int not null )REPEATABLE-READ可重复读(一)这里打开两个mysql的命令行窗口,窗口A,即session1,窗口B,即session2。session1mysql> begin ;Query OK, 0 rows a原创 2016-05-27 17:25:26 · 2097 阅读 · 0 评论 -
InnoDB存储引擎MVCC的工作原理
InnoDB存储引擎的行结构MySQL官方手册https://dev.mysql.com/doc/refman/5.7/en/innodb-multi-versioning.htmlInternally, InnoDB adds three fields to each row stored in the database. A 6-byte DB_TRX_ID fie原创 2016-05-27 17:20:25 · 2343 阅读 · 0 评论 -
MySQL 加锁处理分析
背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上...原创 2016-05-27 11:30:01 · 7352 阅读 · 1 评论 -
Mysql优化相关总结
优化顺序:选择适当的引擎和表结构和数据类型建立索引,优化sql。增加缓存,redis、memcache。主从、主主,读写分离。mysql自带分区表根据业务耦合垂直拆分,分布式数据库水平拆分,选择合理的sharding key。引擎区别与选择:Innodb采用聚簇索引,聚簇索引包含data。辅助索引(复合索引、前缀索引、唯一索引)存储的是主索引的值,所以查找时原创 2016-05-27 09:14:32 · 8436 阅读 · 1 评论 -
Mysql----索引实现剖析与实践
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分原创 2016-03-08 10:12:29 · 993 阅读 · 0 评论 -
Mysql----游标的嵌套循环
游标的嵌套循环,下面列举了3种嵌套循环(loop-loop,loop-while,loop-repeat).程序用到的表和数据CREATE TABLE tb_dic_class ( class_id int(11) DEFAULT NULL, class_name varchar(20) DEFAULT NULL, createtime datetime DEFA原创 2016-03-05 14:35:16 · 1430 阅读 · 0 评论 -
Mysql----主从数据库配置
MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器。所以我在项目部署和实施中经常会采用这种方案.+ 数据库目录及其它my.cnf配置文件 /etc/my.cnfmysql数据库位置 datadir=/var/lib/mysql主数据库:原创 2014-12-02 16:41:56 · 637 阅读 · 0 评论 -
Mysql----浅入浅出之事务处理及其他
并不是所有数据库引擎都支持事务处理,例如,InnoDB支持,er原创 2014-08-11 18:02:38 · 763 阅读 · 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 · 920 阅读 · 0 评论 -
Mysql----浅入浅出之插入删除等操作
一、数据插入 INSERT原创 2014-08-11 10:50:07 · 660 阅读 · 0 评论 -
Mysql----浅入浅出之查询
一、SELECT 语句的语法如下:SELECT selection_list 选择哪些列FROM table_list 从何处选择行WHERE primary_constraint 行必须满足什么条件GROUP BY grouping_columns 怎样对结果分组HAVING secondary_constraint 行必须满足的第二条件O原创 2013-04-09 19:59:11 · 1271 阅读 · 0 评论 -
Mysql EXPLAIN详解
在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时...原创 2018-05-10 10:39:27 · 324 阅读 · 0 评论