数据库
沐沐牡
这个作者很懒,什么都没留下…
展开
-
三级模式两级映像
一. 定义Transaction 是用户定义的一系列操作,要么完全执行,要么完全不执行。是数据库的一个逻辑工作单位,由DBMS的事务子系统处理。3条相关语句:BEGIN TRANSACTIONCOMMITROLLBACK二. 目的一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:为数据库操作序列提供了一个从失败中恢复到正常状转载 2017-06-20 20:44:51 · 778 阅读 · 0 评论 -
MySQL索引底层数据结构
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分转载 2017-07-25 22:38:51 · 628 阅读 · 0 评论 -
索引算法
关于B+树数据结构①InnoDB存储引擎支持两种常见的索引。一种是B+树,一种是哈希。B+树中的B代表的意思不是二叉(binary),而是平衡(balance),因为B+树最早是从平衡二叉树演化来的,但是B+树又不是一个平衡二叉树。同时,B+树索引并不能找到一个给定键值的具体行。B+树索引只能找到的是被查找数据行所在的页。然后数据库通过把页读入内存,再在内存中进行查找,最后得到转载 2017-07-25 20:29:28 · 2932 阅读 · 0 评论 -
数据库连接池
接池Data Source Pool的理解1.数据库连接池允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个连接,避免了每个方法里new connection的耗费资源和时间。2.数据库连接池是在项目启动时候初始化的,以方便程序运行时,随时可以调用这些已经被创建好的connection。只需要getConnection()就好。connection的建立、断开都由连转载 2017-07-25 19:59:51 · 227 阅读 · 0 评论 -
数据库范式
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(转载 2017-08-16 16:08:32 · 158 阅读 · 0 评论 -
MySQL存储引擎中的MyISAM和InnoDB区别详解
在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问。为了解开这个谜题,搜寻了网络,找到了如下信息:MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(转载 2017-08-16 16:01:34 · 201 阅读 · 0 评论 -
MySql优化2
优化Group By语句默认情况下,MySQL 排序所有GROUP BY col1,col2,....。查询的方法如同在查询中指定ORDER BY col1,col2,...。如果显式包括一个包含相同的列的ORDER BY子句,MySQL 可以毫不减速地对它进行优化,尽管仍然进行排序。如果查询包括GROUP BY 但你想要避免排序结果的消耗,你可以指定ORDER BY NULL禁止排序转载 2017-08-16 15:41:19 · 77 阅读 · 0 评论 -
MySql优化
这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途同归,某些还是存在差异。我总结的也是mysql普遍的规则,对于某些特殊情况得特殊对待。在构造sql语句的时候养成良好的习惯原则1、仅列出需要查询的字段,这对速度不会明显的影响,主要是考虑节省应用程序服务器的内存。原来语句: select * from admin优化为: select admin_id,admin_na转载 2017-08-16 15:33:42 · 181 阅读 · 0 评论 -
事务的隔离级别
如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状转载 2017-08-16 11:57:40 · 216 阅读 · 0 评论 -
索引与查找分析
数据库索引,是数据库管理系统中 一个排序的数据结构 ,以协助快速查询、更新数据库表中数据。 索引的实现通常使用B树及其变种B+树 。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的: 一是增加了数据库的存储空间 , 二是在转载 2017-06-21 21:24:01 · 235 阅读 · 0 评论 -
视图
1)定义和概念 ① 从一个或几个基本表中根据用户需要而做成一个虚表 ② 视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据 ③ 视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户(2)视图的优点 ① 能分割数据,简化观点。可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把转载 2017-06-21 15:57:57 · 200 阅读 · 0 评论 -
触发器
1)触发器定义: 触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。(2)触发器的作用: 1.安全性。可以基于数据库的值使用户具有操作数据库的某种权利。 2.审计。可以跟踪用户对数据库的操作。 3.实现复杂的数据完整性规则 # 实现非标准的数据完整性检查和约转载 2017-06-21 15:56:33 · 209 阅读 · 0 评论 -
存储过程
(1)概念: ① 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库 中。 ② 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过 程带有参数)来执行它。 ③ 存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中。 ④ 存储过程可由应用程转载 2017-06-21 15:55:46 · 217 阅读 · 0 评论 -
锁
(1)概念: 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据转载 2017-06-21 15:54:59 · 186 阅读 · 0 评论 -
事物
(1)定义:事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些 操作要么都执行,要么都不执行,它是一个不可分割的工作单位。所以,事务是数据库 维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。(2)事务是DBMS的基本单位,是构成单一逻辑工作单元的操作集合(3)事务的四个基本特征:① Atomic(原子性):事务中包含的操作转载 2017-06-21 15:53:30 · 440 阅读 · 0 评论 -
索引分析
(1)索引概念:索引是由用户创建,能够被修改和删除的,实际存储在数据库中的物理存在,它是某一个表中一列或者若干列值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。(2)索引的优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据转载 2017-06-20 23:16:02 · 213 阅读 · 0 评论 -
数据模型
定义1. 模型一张地图、房地产沙盘都是模型。模型是对现实世界中某个对象特征的模拟和抽象。例如:航模飞机是对真实飞机的模拟和抽象,它模拟了飞机的起飞、飞行、降落;它抽象了飞机的基本特征---机身、机头、机翼、机尾。2. 数据模型数据模型符合上述“模型”的定义。特殊的是:这是专门描述“数据”这种对象的模型。由于计算机处理不了现实世界的具体事物,转载 2017-06-20 20:57:23 · 1005 阅读 · 0 评论 -
sql优化1
http://blog.jobbole.com/107256/背景前几天在项目上线过程中,发现有一个页面无法正确获取数据,经排查原来是接口调用超时,而最后发现是因为SQL查询长达到20多秒而导致了问题的发生。这里,没有高深的理论或技术,只是备忘一下经历和解读一些思想误区。复杂SQL语句的构成这里不过多对业务功能进行描述,但为了突出问题所在,会用类比的语句来描述当时的场景。复杂的...转载 2018-12-04 21:58:02 · 94 阅读 · 0 评论