SQL
轻鸿飘羽
这个作者很懒,什么都没留下…
展开
-
SQL查询时间段的语句写法
如果需要SQL查询时间段,那么该SQL语句应该怎么写呢?下面就将为您介绍SQL查询时间段的语句写法,供您参考,希望对您有所启迪。 假设在SQL SERVER2000数据库中有一个表,表名为book,设置两个日期框,分别起名为起始时间和终止时间,其中在book中有一个DATETIME类型的字段,字段名假设为查询时间。 由于在SQL中只能用文本,所以先设一个时间转换为文本的子程序。转载 2012-09-04 10:51:52 · 4490 阅读 · 0 评论 -
Mysql加锁过程详解(8)-理解innodb的锁(record,gap,Next-Key lock)
Record lock单条索引记录上加锁,record lock锁住的永远是索引,而非记录本身,即使该表上没有任何索引,那么innodb会在后台创建一个隐藏的聚集主键索引(聚簇索引),那么锁住的就是这个隐藏的聚集主键索引。所以说当一条sql没有走任何索引时,那么将会在每一条聚集索引后面加X锁,这个类似于表锁,但原理上和表锁应该是完全不同的。(如果该表没有主键呢?)Gap lock在索引记录之间的间...转载 2018-03-05 12:04:27 · 1170 阅读 · 0 评论 -
Mysql加锁过程详解(7)-初步理解MySQL的gap锁
初步理解MySQL的gap锁(间隙锁)初识MySQL的gap,觉得这个设计比较独特,和其他数据库的做法不太一样,所以整理一个简单的memo(虽然关于gap锁,相关资料已经很多了)1. 什么是gapA place in an InnoDB index data structure where new values could be inserted. 说白了gap就是索引树中插入新记录的空隙。相应的...转载 2018-03-05 12:03:34 · 1319 阅读 · 0 评论 -
Mysql加锁过程详解(6)-数据库隔离级别(2)-通过例子理解事务的4种隔离级别
第1级别:Read Uncommitted(读取未提交内容)第2级别:Read Committed(读取提交内容)第3级别:Repeatable Read(可重读)第4级别:Serializable(可串行化)参考文章 SQL标准定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 首先,我们使用 ...转载 2018-03-05 12:02:46 · 258 阅读 · 0 评论 -
Mysql加锁过程详解(6)-数据库隔离级别(1)
一、数据库事务隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。√: 可能出现 ×: 不会出现 脏读不可重复读幻读Read uncommitted√√√Read committed×√√Repeata...转载 2018-03-05 12:02:14 · 1222 阅读 · 0 评论 -
Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
多版本并发控制技术已经被广泛运用于各大数据库系统中,如Oracle,MS SQL Server 2005+, Postgresql, Firebird, Maria等等,开源数据库MYSQL中流行的INNODB引擎也采用了类似的并发控制技术.本文就将结合实例来解析不同事务隔离等级下INNODB的MVCC实现原理.1 MVCC概述1.1 MVCC简介MVCC (Multiversion Concur...转载 2018-03-05 12:00:26 · 345 阅读 · 0 评论 -
Mysql加锁过程详解(4)-select for update/lock in share mode 对事务并发性影响
select for update/lock in share mode 对事务并发性影响事务并发性理解事务并发性,粗略的理解就是单位时间内能够执行的事务数量,常见的单位是 TPS( transactions per second).那在数据量和业务操作量一定的情况下,常见的提高事务并发性主要考虑的有哪几点呢?1.提高服务器的处理能力(提高CPU?),让事务的处理时间变短。这样不仅加快了这个事务的...转载 2018-03-05 11:58:21 · 942 阅读 · 0 评论 -
Mysql加锁过程详解(3)-关于mysql 幻读理解
Mysql加锁过程详解(2)-关于mysql 幻读理解出现了幻读,那么不是说mysql的重复读解决了幻读的么? 那么,InnoDB指出的可以避免幻读是怎么回事呢?http://dev.mysql.com/doc/refman/5.0/en/innodb-record-level-locks.htmlBy default, InnoDB operates in REPEATABLE READ tra...转载 2018-03-05 11:56:57 · 380 阅读 · 0 评论 -
Mysql加锁过程详解(1)-基本知识
1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的...转载 2018-03-05 11:53:40 · 2172 阅读 · 2 评论 -
教您如何进行SQL数据分页
在使用SQL数据库的过程中,如果要用到SQL数据分页,应该怎么办呢?下面就教您SQL数据分页的一个方法,供您参考,希望对您有所帮助。 思路是根据页号取出两部分数据,比如取出前90条,然后取出前100条,然后比较取出两次结果的差集。在30万条记录的情况下,如果只分100页(结果有10000条记录),大约需要1分半钟。索引建得好的话,1分钟左右。 //select * from //这一句是不转载 2012-09-04 13:19:32 · 928 阅读 · 0 评论 -
Mysql加锁过程详解(2)-关于mysql 幻读理解
首先,mysql 幻读并非是”一个事务内进行两次相同操作居然得到了不一样的结果”,因为它根本不可能发生在使用了 read view / MVCC 的 RR 隔离级别下,这种幻读的定义更适合给 Oracle,Oracle 的事务隔离只有两级,RC 和 Serializable。然后还有很多人辩解说不可重复读是针对某条记录的,幻读是针对记录集合的,这是在自我安慰么?这里给出 mysql 幻读的比较形象...转载 2018-03-05 11:54:56 · 344 阅读 · 0 评论