![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
yesIcando-bupt
stay hungry stay foolish
展开
-
mysql语句
mysql语句标签: MySQL数据库2013-07-31 14:27 1065人阅读 评论(0) 收藏 举报 分类:海量数据处理(8) 版权声明:本文为博主原创文章,未经博主允许不得转载。现在要操作数据库啊,大三时学的那些MySQL早忘光了,找了一些常用的放在这里。mysql查看表结构命令:show data转载 2016-12-24 16:58:38 · 221 阅读 · 0 评论 -
索引的本质
MySQL官方对于索引的定义为:索引是帮助MySQL高效获取数据的数据结构。即可以理解为:索引是数据结构。 我们知道,数据库查询是数据库最主要的功能之一,我们都希望查询数据的速度尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,当然这种时间复杂度为O(n)的算法在数据量很大时显然是糟糕的,于是有了二分查找、二叉树查找等。但是二分查找要求被原创 2017-04-19 10:02:39 · 474 阅读 · 0 评论 -
深入理解乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernate、t原创 2017-04-19 08:56:56 · 207 阅读 · 0 评论 -
mysql乐观锁总结和实践
上一篇文章MySQL悲观锁总结和实践谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍:原创 2017-04-18 17:24:42 · 182 阅读 · 0 评论 -
mysql悲观锁总结和实践
MySQL悲观锁 最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,原创 2017-04-18 17:18:06 · 243 阅读 · 0 评论 -
事务
事务(transaction)是数据库管理系统的执行单位,可以是一个数据库操作(如Select操作)或者是一组操作序列。事务ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性:保证事务中的所有操作全部执行或全部不执行。例如执行转账事务,要么转账成功,要么失败。成功,则金额从转出帐户转入到目的帐户,原创 2017-04-18 17:09:43 · 201 阅读 · 0 评论 -
MyISAM与InnoDB的区别
MySQL默认采用的是MyISAM。 MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即MyISAM同一个表上的读锁和写锁是互斥的原创 2017-04-18 16:59:02 · 183 阅读 · 0 评论 -
mybatis增删改查与批量操作
本文内容主要介绍单条记录的增删改查操作,MyBatis提供了很多完成单条记录的增删改查操作的API。本例主要讲述 UserMapper org.apache.ibatis.session.SqlSession.getMapper(Class clazz)的使用。使用此API,我们需要创建UserMapper操作接口,函数名和MyBatis的User.xml配置文件中的操作id名对应。原创 2017-03-31 10:24:44 · 337 阅读 · 0 评论 -
数据库原理
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关原创 2017-03-30 20:31:55 · 553 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一原创 2017-03-27 16:26:04 · 181 阅读 · 0 评论 -
从头到尾解析Hash表算法
说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。------------------------------------ 第一部分:Top K 算法详解问题描述百度面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度原创 2017-03-05 21:20:22 · 190 阅读 · 0 评论 -
原理分析之一:从JDBC到Mybatis
1.引言本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。 2.JDBC实现查询分析我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1) 加载JDBC驱动(2) 建立并获取数据库连接(3)原创 2017-03-02 16:18:59 · 645 阅读 · 0 评论 -
原理分析之四:一次SQL查询的源码分析
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的。 准备工作Mybatis完成一次SQL查询需要使用的代码如下: Java代码 String resource = "mybatis.cfg.xml"; Reader reader = Resources原创 2017-03-02 16:33:50 · 189 阅读 · 0 评论 -
原理分析之三:初始化(配置文件读取和解析)
码分析配置读取获取连接 1. 准备工作 编写测试代码(具体请参考《Mybatis入门示例》),设置断点,以Debug模式运行,具体代码如下: Java代码 String resource = "mybatis.cfg.xml"; Reader reader = Resources.getResourceAsReader(resource);原创 2017-03-02 16:32:04 · 342 阅读 · 0 评论 -
原理分析之二:框架整体设计
析框架整体设1.引言本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。 2.整体设计2.1 总体流程(1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映原创 2017-03-02 16:30:55 · 214 阅读 · 0 评论 -
MySQL对数据表进行分组查询(GROUP BY)
MySQL对数据表进行分组查询(GROUP BY)目录(?)[+]MySQL对数据表进行分组查询(GROUP BY)GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组。字段中值相等的为一组。基本的语法格式如下:GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]属性名:转载 2017-01-10 11:27:22 · 694 阅读 · 0 评论 -
数据库大并发操作要考虑死锁和锁的性能问题
1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。2 锁的种类共享锁(Shared lock)。例1:原创 2017-08-03 14:36:20 · 666 阅读 · 0 评论