--TRUNC(date,[fmt]) /TRUNC(number[,decimals])SELECT SYSDATE FROM dual;SELECT TRUNC(SYSDATE) FROM dualSELECT TRUNC(12.34524,2) FROM dual;  --12.34SELECT TRUNC(-12.34724,2) FROM dual; --12.34SELECT TRUNC(12.34524,-1) FROM dual; --10--返回当前月的第一天 SELECT T…
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要方法是封锁,锁就是在一段时间内禁止…
原文地址:https://my.oschina.net/oosc/blog/1620279 前言 锁是防止在两个事务操作同一个数据源(表或行)时交互破坏数据的一种机制. 数据库采用封锁技术保证并发操作的可串行性. 以Oracle为例: Oracle的锁分为两大类:数据锁(也称DML锁)和字典锁. 字典锁是Oracle DBMS内部用于对字典表的封锁. 字典锁包括语法分析锁和DDL锁,由DBMS在必要的时候自动加锁和释放锁,用户无机控制. Oracle主要提供了5种数据锁: 共享锁(Share T…
DBMS_RLS 实现一个数据库表为行级安全控制,该套餐包括细粒度的访问控制管理界面,此接口是用来实现VPD(Virtual Private Database),虚拟专用数据库.DBMS_RLS仅仅能在ORACLE的企业版(Enterpris Edition Only)本才干够用.oracle ebs 的权限是用这个来管理的. 在数据库的数据安全訪问的解决上,有非常多的方法来解决权限的问题.有的是通过功能模块来控制訪问权限的,有的是用建立视图的方法控制,比如查询语句中加where语句来控制.可是…
乐观锁 乐观锁是逻辑概念上的锁,不是数据库自带的,需要我们自己去实现.乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了. 通常实现是这样的:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1.也就是先查询出那条记录,获取出version字段,如果要对那条记录进行操作(更新),则先判断此刻version的值是否与刚刚查…
#include <sys/time.h> long getCurrentTime() { struct timeval tv; gettimeofday(&tv,NULL); return tv.tv_sec * 1000 + tv.tv_usec / 1000; }…
目录 InnoDB锁 InnoDB行锁实现机制 InnoDB隐式.显式锁 InnoDB锁类型 共享锁 排他锁 意向锁 InnoDB锁兼容性 InnoDB行锁范围.粒度 InnoDB行锁粒度一览 意向插入锁的示意: 操作InnoDB表时的加锁等级 InnoDB自增锁 auto-inc lock InnoDB自旋锁 InnoDB spin lock 通过自旋锁状态来判断数据库负载 InnoDB 行锁 锁排查可以用的视图和数据字典 查看InnoDB锁 InnoDB 行锁兼容性 InnoDB 读模式 快…
转自:http://www.cnblogs.com/edwinchen/p/4171866.html 以签到为例,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当初表设计的时候,每个用户签到一次,即向表中插入一条记录,根据记录的数量和时间来判断用户当天是否签到. 这样的话就会有一个问题,如果是在网速过慢的情况下,用户多次点击签到按钮,那么变会发送多次请求,可能会导致一天多次签到,重复提交的问题,那么很自然的想到用事务.这次用的是spring + mybtais的框架,一开始…
[前言]数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则.MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别. 一.概述 MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定. 1.表级锁定(table-level)     …
我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的.所以像Mysql的默认引擎MyISAM和第三方插件引擎 InnoDB的锁实现机制是有区别的. Mysql有三种级别的锁定:表级锁定.页级锁定.行级锁定 #一.定义 每次锁定的是一行数据的锁机制就是行级别锁定(row-level).行级锁定不是MySQL自己实现的锁定方式,而是由其他存储引擎自己所实现的 #二.优缺点 1. 优点 由于锁粒度小,争用率低,并发高. 2. 缺点 实现复杂,开销大. 加锁慢.容易出现死锁 #三.支持…