Welcome 微信登录

首页 / 数据库 / MySQL

MySQL InnoDB存储引擎锁机制实验

MySQL InnoDB存储引擎锁机制实验

之前的文章提到MySQL的InnoDB存储引擎使用的是行级锁,并且默认的事务隔离级别为可重复读,而不同于Oracle默认的事务隔离级别提交读。那么MySQL的InnoDB存储引擎的锁机制的具体表现是怎样的呢?相关阅读:MySQL数据库锁机制 http://www.linuxidc.com/Linux/2013-03/81532.htm实验如下:首先建立一张测试使用的表:CREATE TABLE`test_innodb_lock` ( `a` int(11)...
Linux 内核参数优化(for Oracle)

Linux 内核参数优化(for Oracle)

Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非能完全满足不同的需求。使用不同的操作系统内核参数将使得数据库性能相差甚远。本文描述了linux下几个主要内核参数的设置,供参考。1、Linux共享内存 共享内存是在系统内核分配的一块缓冲区,多个进程都可以访问该缓冲区。 由于进程可以直接读写内存,避免了在内核空间与用户空间的切换,所以共享内存读写效率很高。 当一个进程改变了这...
MySQL中排序在SQL优化中的部分解析

MySQL中排序在SQL优化中的部分解析

在mysql中,相关的复制的sql语句,会对所要搜取得结果进行规整,这里就有排序,分组,统计等相关整理过程,其中排序的算法的意义最为重要,在mysql不同的版本中,特别是在5.1系列以后对排序算法的定义不断加强改善;在排序算法中对新旧算法当中提到的阵列的宽度,以及函数搜取的范围,大小,影响的高度等都进行了修改,并设置相关的阀值,以指导相关的参数自动闭合;以下是在5.5系列中相关的sort文件截取;#define UT_SORT_FUNCTION_BODY(...
Oracle 数据块优化参数

Oracle 数据块优化参数

用于数据块优化的两个参数:pctfree和pctused一般都是用在OLTP系统当中。两者并没有相互的关系,当满足其中一种条件的时候,就会被出现/移除free-list列表当中。Oracle自动管理块空闲空间的条件:当一个插入或者更新操作的行在一个数据块中有足够空闲空间,并且这个空闲空间碎片状态,无法满足一行数据的使用。Oracel不总是自动整理碎片(合并空闲空间)的原因是,这回导致一定的系统资源开销。pctfree:当数据块中的数据量达到这个值将不允许继...
innodb中的REDO解析

innodb中的REDO解析

在innodb存储引擎中,事务日志通过重做(redo)日志文件和innodb存储引擎的日志缓冲(innodb log buffer)来实现;当开始一个事务时,会记录该事务的一个LSN(Log sequence number),当事务执行是,会往innodb存储引擎的缓冲池里插入事务日志,当事务提交是,必须将innodb粗才能引擎的日志缓冲写入磁盘(默认的实现,即innodb_flush_log_at_trx_commit=1),也就是写数据前,需要先写日志...
Oracle数据库之SQL连接查询

Oracle数据库之SQL连接查询

前言现实中有这么一种需求,有时候我们需要查询的数据是在多个表中的,那么如何从多个表中查询数据呢?这就需要通过表的连接来实现查询了。笛卡尔积在定义连接之前我们需要简单的了解一下笛卡尔积,笔者不会纠结与其定义,只是看看其实际效果其实笛卡尔积就是没有连接条件或者连接条件无效的连接,例如:select *from emp ,dept;--其结果倾向于一个巨大的记录数,无实际意义上面可以看出笛卡尔积得出的是一个巨大的无意义的记录集合,我们可以通过在where子句中使...
MySQL的MyISAM引擎不支持事务

MySQL的MyISAM引擎不支持事务

找一天的 spring 事务回滚错误,终于找到了 原来 MySQL的MyISAM引擎是不支持事务处理的 唉~~~ 看看mysql 用少了 郁闷 写下来 做个记录mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。最常使用的2种存储引擎:1.Myisa...
Oracle 临时表空间

Oracle 临时表空间

一、临时表空间主要使用在以下几种情况:1、order by or group by (disc sort占主要部分);2、索引的创建和重创建;3、distinct操作;4、union & intersect & minus sort-merge joins;5、Analyze 操作;6、有些异常也会引起TEMP的暴涨。Oracle临时表空间暴涨的现象经过分析可能是以下几个方面的原因造成的:1. 没有为临时表空间设置上限,而是允许无限增长。但...
MySQL 处理非法数据

MySQL 处理非法数据

默认情况下,MySQL按照以下规则处理“数据越界”和其他非正常数据1、对于数值数据或time数据列,超出合法范围的值将被阶段到最近的取值范围边界;2、对于字符串数据列(不包括enum、set)太长的字符串将被截断到数据列的最大长度,对于ENUM类型数据,MySQL将不合法成员用空字符串代替。如果赋值给某个set数据列包含非法子字符串,那mysql会删除那些子字符串并把剩下的赋值给该数据列3、对于日期和时间数据列,非法数值会被转换成&...
DB2 Merge Into语句的使用

DB2 Merge Into语句的使用

在做数据备份的时候,我们通常情况下是创建一个同样结构的表,定期将数据从生产表中写入备份表中,在备份间隔期间,生产数据会增加,会被修改,那么有一种备份方法就是增量备份。增量备份,就是每次只是备份自上次备份之后修改的数据。备份数据,通常使用DB2特有的工具去实现;有一个功能及其强大的语句,可以实现和模拟增量备份的操作。Merge Into 语句去实现增量备份的时候,对于新增加的生成数据,直接insert到备份表中,对于更改过的数据,可以通过取update备份表...
Oracle定时任务失效

Oracle定时任务失效

发现系统数据没有更新,查看Oracle定时任务,估计没有执行。发现next_date变成了4000/1/1 ,broken被选中。select * from user_jobs发现该任务失败次数达16次。查得如下原因: 当任务运行失败时,SNP过程在1分钟后将再次试图运行该任务。如果这次运行又失败了,下一次尝试将在2分钟后进行,再下一次在4分钟以后。任务队列每次 加倍重试间隔直到 它超过了正常的运行间隔。在连续16次失败后,任务就被标记为中断的(bro...
<< 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 >>