数据库优化
文章平均质量分 72
丹_妮
这个作者很懒,什么都没留下…
展开
-
Union 和Union All区别
适用于:当需要将两个select语句的结果作为一个整体显示出来,就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。区别:Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All:对两个结果集进行并集操作,包括重复行,不进行排序; Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默原创 2016-07-08 17:52:05 · 416 阅读 · 0 评论 -
优化3——数据库语句分析
人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面将原创 2016-08-12 20:24:23 · 501 阅读 · 0 评论 -
3、数据库隔离级别以及悲观锁和乐观锁
数据库隔离级别目的:保证事务并发读取数据的正确性数据库事务隔离级别(1)Read uncommitted(读未提交数据):允许事务读取未被其他事务提交的变更数据,会出现脏读、不可重复读和虚读。(2)Read committed(读已提交数据):只允许事务读取已经被其他事务提交的变更数据,可避免脏读,仍会有不可重复读和虚读(3)Repeatable read(可重复读):确保事务原创 2016-08-12 20:09:10 · 1532 阅读 · 0 评论 -
2、数据库事务
数据库事务(Database Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。事务由作为包执行的单个命令或一组命令组成。 通过事务可以将多个操合并为单个工作单元。 如果在事务中的某一点发生故障,则所有更新都可以回滚到其事务前状态。事务必须符合 ACID 属性(原子性、一致性、隔离和持久性)才能保证数据的一致性。利用事务维护数据库的原创 2016-08-12 20:10:53 · 520 阅读 · 0 评论 -
优化2——数据库索引
索引使用规则:(1)让限制条件更大的索引放在前面(根据“匹配索引扫描”效率更高)(2)在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。(3)索引并不是越多越好,索引固然可以提高相应的select 的效率,但同时也降低了insert 及upda原创 2016-08-12 20:08:10 · 693 阅读 · 0 评论 -
优化1——数据库优化面试题
1.实践中如何优化mysql1) SQL语句及索引的优化2) 数据库表结构的优化3) 系统配置的优化4) 硬件优化 2.索引的底层实现原理和优化在 DB2 数据库中索引采用的是 B+树的结构,索引的叶子节点上包含索引键的值和一个指向数据地址的指针。DB2先查询索引,然后通过索引里记录的指针,直接访问表的数据页。B+树。B+树是应数据库所需而出现的一种B树原创 2016-08-12 20:01:58 · 36135 阅读 · 3 评论 -
为什么要用存储过程?
存储过程概念存储过程是一些sql语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序通过存储过程名字调用,也可以从另一个存储过程或触发器调用。它的参数可以被传递和返回,与应用程序中的函数过程类似,存储过程可以通过名字来调用,具有输入参数和输出参数。存储过程分类1) 返回记录集的存储过程 ----从数据库返回符合一个或几个条件的记录原创 2016-08-12 19:59:31 · 3878 阅读 · 0 评论 -
数据库三范式
说到软件开发 就不能不说数据库 说到数据库 就不能不说三范式 其实数据库范式一共有六个 除了第一 二 三范式以外还有第四 第五范式和一个BC范式 为什么要用范式范式是为了消除重复数据减少冗余数据,从而让数据库内的数据更好的组织,让磁盘空间得到更有效利用的一种标准化标准,满足高等级的范式的先决条件是满足低等级范式。第一范式(1NF)第一范式是指数据库表的每一列都是不可分割的基原创 2016-08-12 19:58:30 · 344 阅读 · 0 评论 -
SQL With (递归CTE查询)
指定临时命名的结果集,这些结果集称为公用表表达式 (CTE)。该表达式源自简单查询,并且在单条 SELECT、INSERT、UPDATE 或 DELETE 语句的执行范围内定义。该子句也可用在 CREATE VIEW 语句中,作为该语句的 SELECT 定义语句的一部分。公用表表达式可以包括对自身的引用。这种表达式称为递归公用表表达式。语法转载 2016-07-08 18:50:01 · 13596 阅读 · 0 评论 -
Sql的递归查询
Sql递归原理递归最少包括两个查询(也被称为成员)。第一个查询为定点成员,定点成员只是一个返回有效表的查询,用于递归的基础或定位点。 第二个查询被称为递归成员,使该查询成为递归成员的是对递归引用时触发(递归表.id与该表的pid)。在逻辑上,可以将其理解为是前一个查询语句的子集。 递归查询没有显式的递归终止条件,只有当第二个递归查询返回空结果集或是超出了递归次数的最大限制时才停止递归。递归次数上原创 2016-07-08 18:39:46 · 19468 阅读 · 1 评论 -
DB2修改表中一列为自动增长主键的方法
1 )当想将表中一列修改为自动增长时,可用下面命令:Alter table alter column set generated always as identity (start with 1,increment by 1)上面命令是在改一表中列的属性时,在网上找到的很有用。 2)当修改表中一列自动增长的开始值时,可用下面的命令:ALTER TABLE转载 2014-11-27 16:36:21 · 1376 阅读 · 0 评论 -
SQL语句的解析顺序
SQL语句的解析顺序1、FROM FROM后面的表标识了这条语句要查询的数据源。和一些子句如,(1-J1)笛卡尔积,(1-J2)ON过滤,(1-J3)添加外部列,所要应用的对象。FROM过程之后会生成一个虚拟表VT1。(1-J1)笛卡尔积 这个步骤会计算两个相关联表的笛卡尔积(CROSS JOIN),生成虚拟表VT1-J1。(1-J2)ON过滤 这个步骤基于虚拟表VT1-J1这一原创 2016-10-19 10:09:15 · 462 阅读 · 0 评论