Welcome 微信登录

首页 / 数据库 / MySQL

MySQL中timestamp字段的一些规则

MySQL中timestamp字段的一些规则

有同学说timestamp字段的规则比较“诡异”。手册里面说的比较复杂,这里简单说明一下MySQL中 timestamp字段的一些规则。分为两部分定义规则:1、 timestamp字段有三个属性:a) 是否允许NULL。默认为not null。b) 默认值 。可以设定为default CURRENT_TIMESTAMP 或default 某个常量。若定义时缺省,对于第一个出现的timestamp字段,默认为CURRENT_TIMESTAMP, 对于其他ti...
MySQL 中 QueryCache 的锁模型

MySQL 中 QueryCache 的锁模型

有同学在问 MySQL中 QueryCache(QC)的锁是 “全局锁”还是 “表锁”。这里简要说明一下。1、 QC基本概念这个是实现在MySQL层(非引擎层)的一个内存结构,基本规则是将满足一定条件的查询结果缓存在内存中,若同样的查询再执行第二次,而且缓存没有失效,则可以直接返回查询结果,无需到引擎获取数据。几个说明:a) QC的结构是hash,key为查询字符串的原文,因此若想命中QC,要求查询语句与之前的一模一样,包括大小写必须一致、不能增减空格等等...
MySQL表名映射方案及扩展应用

MySQL表名映射方案及扩展应用

这篇文章介绍的简单方案应用于如下需求:主库为了性能考虑,作分库分表,从库则上为了多索引查询等需求,不作分表。参数replicate-rewrite-db 及应用这个参数是官方版本自带的。配置格式为 replicate-rewrite-db = from_db -> to_db。 同步效果为将所有在from_db上的操作都修改为对to_db的操作。例子:因此可以在主库上做分库,如需要将表abc分成10个,则主库上建10个db, 名字为sdb_1, sd...
Oracle 10g与11g中的一个函数wmsys.wm_concat 的不同返回值

Oracle 10g与11g中的一个函数wmsys.wm_concat 的不同返回值

wmsys.wm_concat的作用是将多行合并为一行,如一个人买了3只股票A,B,C 正常我们会记录成三条数据,现在要以一条数据显示该人的股票,这是wmsys.wm_concat方法就有用了。但是,在Oracle 10G中该方法返回值可直接转为String后使用,但是在11G中却是Clob类型,我们必须将clob转为String 或其他类型后才可以使用。/** * 将CLOB转成String ,静态方法 * @param clob 字段 * @re...
Oracle修改字段类型后索引错误的解决方案

Oracle修改字段类型后索引错误的解决方案

起因:由于在查询中需要用到 UNION ALL 操作,而表中的存在 LONG 类型字段,操作无法完成,根据具体业务场景,将 LONG 类型字段修改为 CLOB 类型。修改后,UNION ALL 操作可行,但是子表的增删改操作出现了问题,提示为父表的 INDEX 不可用。这里顺便说一句:如果要从VARCHAR2类型修改为特殊类型CLOB,那么不能直接从VARCHAR2转换为CLOB,需要使用LONG类型,来做一个过渡(可以先修改为LONG类型,然后从LONG...
Oracle中的IMU详解

Oracle中的IMU详解

1、概述Oracle 10g InMemory Undo新特性: 通过以前的介绍,可知道Undo的管理方式和常规的数据管理方式是相同的,当进行数据修改时,会在Buffer中创建前镜像,同时会记录相应的Redo,然后这些Undo数据同样会写出到UNDO SEGMENT上,当进行一致性读或回滚时,可能会产生大量的consistentgets和physical reads。注意到这里,Undo会产生Redo信息,又会写UNDO SEGMENT,进而又可能产生大量...
Oracle等待事件详细分析

Oracle等待事件详细分析

从今天起,木木同学要认真整理一下Oracle中常见的等待事件,通过这部分的学习,希望自己能对oracle内部的结构能有一个更清晰的认识,有兴趣的童鞋一起来哇。1、latch:cache buffers chains从oracle 9i开始,以只读为目的的查询chains时,可以将cache buffers chains锁存器以shared模式共享,因此有助于减少争用。(我们需要注意,若能共享cache buffer chains 锁存器,理论上理论上不应该...
段上的等待事件 —— enq: HW - contention

段上的等待事件 —— enq: HW - contention

为防止多个进程同时修改HWM而提供的锁称为HW锁。想要移动HWM的进程必须获得HW锁。若在获取HW锁过程中发生争用,则等待enq: HW - contention事件。HW锁争用大部分是大量执行insert所引发的。众所周知,Oracle高水位线标志着该线以下的block均被Oracle格式过,通俗一点讲就是该高水位线以下的block都被Oracle使用过。 通常在执行insert操作时,当高水位线以下block不够用时,Oracle将会推进高水位线。更进...
Oracle 集操作和exists、in的运用场景

Oracle 集操作和exists、in的运用场景

1 集操作定义:把多个sql的结果集,通过逻辑上的整合运算,拼在一起显示。集操作缺省下都是按第一个查询的第一列升序排序,当然除了union all:minus:取差集,可用于对两个结果集进行测试union:取并集,除重union all:取并集,不剔重intersect:取交集注释:① union all不排序、不剔重,在效率上比union高。在业务允许下,用union all,则不用union② 两表作集操作时,字段类型、个数要相同,列的名字可以不必相同...
Oracle rollup和cube分析

Oracle rollup和cube分析

rollup是对group by的扩展,会进行小计和合计,而cube包含rollup,是粒度更精细的小计和合计。当只有一个字段时,rollup和cube是一样的。可用grouping对rollup和cube进行测试:0看;1不看[看表示列有显示,不看表示没有显示]① rollup㈠ 什么都不看㈡ 从左往右 ┌ 先看第1个│ 再看前2个└ 后看前3个② cube:0、1全排列rolluprollup后面指定的列以逗号分隔,rollup的计算结果和其后面指定的...
<< 591 592 593 594 595 596 597 598 599 600 >>