undo

mysql面试知识点

Deadly 提交于 2020-03-08 10:54:05
1 MyISAM和InnoDB的区别    a 是否支持行级锁 :   MyISAM 只有表级锁 (table-level locking),   而 InnoDB 支持行级锁 (row-level locking)和表级锁,默认为行级锁。    b 是否支持事务和崩溃后的安全恢复:    MyISAM 强调的是性能 ,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持。   但是 InnoDB 提供事务支持事务 ,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。    c 是否支持外键:   MyISAM不支持,而InnoDB支持。    d 是否支持MVCC :   仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。 2 索引   MySQL索引使用的数据结构主要有 BTree索引 和 哈希索 引 。   对于 哈希索引 来说

Oracle误删除表数据后的恢复具体解释

梦想的初衷 提交于 2020-03-05 17:24:57
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

MySQL 事务提交过程

本小妞迷上赌 提交于 2020-02-25 11:43:26
开发老大要求通过binlog查询一条被修改的数据,数据被查出后问我,有没有可能binlog中不会记录,回答不会,因为数据被修改,若失败直接回滚,不会在binlog中记录,此刻一个朋友用了洪荒之力告诉我,失败的话也会记录,坐地无语,因为他sqlserver dba,用sqlserver的思维考虑mysql,哈哈哈哈哈,用实验让他闭嘴! 简单测试步骤如下: root(yoon)> flush logs; Query OK, 0 rows affected (0.01 sec) root((none))> show binlog events in 'mysql-bin.000041'; +------------------+-----+-------------+-----------+-------------+---------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+-----+-------------+-----------+-------------+---------------------------------------+ | mysql-bin.000041 | 4 |

MySQL 5.6, 5.7, 8.0的新特性

时间秒杀一切 提交于 2020-02-24 05:52:28
MySQL 5.6, 5.7, 8.0的新特性 对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。 1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。 1999年,MySQL AB公司成立。同年,发布MySQL 3.23,该版本集成了Berkeley DB存储引擎。该引擎由Sleepycat公司开发,支持事务。在集成该引擎的过程中,对源码进行了改造,为后续可插拔式存储引擎架构奠定了基础。 2000年,ISAM升级为MyISAM存储引擎。同年,MySQL基于GPL协议开放源码。 2002年,MySQL 4.0发布,集成了后来大名鼎鼎的InnoDB存储引擎。该引擎由Innobase公司开发,支持事务,支持行级锁,适用于OLTP等高并发场景。 2005年,MySQL 5.0发布,开始支持游标,存储过程,触发器,视图,XA事务等特性。同年,Oracle收购Innobase公司。 2008年,Sun以10亿美金收购MySQL AB。同年,发布MySQL 5.1,其开始支持定时器(Event scheduler),分区,基于行的复制等特性。 2009年,Oracle以74亿美金收购Sun公司。 2010年, MySQL 5.5 发布

Undo for a paint program

╄→尐↘猪︶ㄣ 提交于 2020-02-12 09:20:26
问题 I am looking into how to write a paint program that supports undo and seeing that, most likely, a command pattern is what I want. Something still escapes me, though, and I'm hoping someone can provide a simple answer or confirmation. Basically, if I am to embody the ability to undo a command, for instance stamping a solid circle on the screen, does this mean I need to essentially copy the frame buffer that the circle covers into memory, into this command object? I don't see any other way of

Undo for a paint program

佐手、 提交于 2020-02-12 09:20:23
问题 I am looking into how to write a paint program that supports undo and seeing that, most likely, a command pattern is what I want. Something still escapes me, though, and I'm hoping someone can provide a simple answer or confirmation. Basically, if I am to embody the ability to undo a command, for instance stamping a solid circle on the screen, does this mean I need to essentially copy the frame buffer that the circle covers into memory, into this command object? I don't see any other way of

oracle体系-10-undo

心不动则不痛 提交于 2020-02-11 04:02:06
UNDO: 使用 undo tablespace 存放从数据缓存区读出的数据块的前镜像 1.空间重用机制 undo 数据的4种状态 ①active ## 表示transaction 还没有 commit ,不可覆盖 , ②unexpired ## 由已经commit 或 rollback 的数据转换而来的状态 , 在保留期内,尽量不覆盖(非强制) ③expired: ##由unexpired转换而来,其中的数据是超过 undo 保留期的,随时可以再分配(覆盖)。 ④free: ##分配了但未使用过。一般是undo最初创建和扩展时出现,它不是一个常态的。 undo 的状态转换体现了 undo 空间的循环使用原理:分配 --- 》冻结 ---> 回收 --- 》再分配 2. 提供以下四种情况所需要的信息 1 ) 回滚事务: rollback 2 ) 读一致性:正在做 DML 操作的数据块,事务结束前,其他用户读 undo 里面的数据前镜像 3 ) 实例的恢复: instance recover(undo -->rollback) 4 ) 闪回技术 : flashback query 、 flashback table 等 3.Undo的参数及说明 SYS>show parameter undo NAME TYPE VALUE ------------------------------

InnoDB-----第7章 事务

痞子三分冷 提交于 2020-02-08 01:34:43
第7章 事务 文章目录 第7章 事务 @[toc] 1. 认识事物 (1). 概述 (2). 分类 2. 事务的实现 (1). redo 1). 基本概念 2). log block 3). log group 4). 重做日志格式 5). LSN 6). 恢复 (2). undo 1). 基本概念 2). undo存储管理 3). undo log格式 (3). purge (4). MVCC (5). group commit ​ 事务是数据库区别与普通文件系统的重要特性之一. ​ 事务会把数据库从一种一致状态装换为另一种一致状态.在数据库提交工作时,要么确保所有修改都已经保存了,要么所有的修改都不保存. 1. 认识事物 (1). 概述 ​ 数据库的四大特性ACID: 原子性(atomicity):事务对外部不可分离,只有两种状态,成功或者失败. 一致性(conststency):把数据库从一种一致状态装换为另一种一致状态,前后完整性不被破坏(事务内动作符合要求,否则回滚) 隔离性(isolation):两个事物之间按照隔离级别有不同程度的不可见 持久性(durability):一旦提交,事务中对数据的修改永久保存 ​ MySQL事务:实时更新缓冲区中的数据,事务提交时(或者不定时),会刷新到到磁盘持久化.如果发生宕机会使用redo日志从checkpoint

MySQL事务提交过程(一)

霸气de小男生 提交于 2020-02-07 15:38:18
MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中。今天我们来讨论下事务的提交过程。 MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。 本文仅讨论binlog未打卡状态下的提交流程,后续会讨论打开binlog选项后的提交逻辑。 测试环境 OS:WIN7 ENGINE: bin-log:off DB: 测试条件 set autocommit=0; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(20) NOT NULL, `account` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) USING BTREE, KEY `name` (`name`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 测试语句 insert into

Git How To: Undo/Revert a saved stash by Message easily

让人想犯罪 __ 提交于 2020-02-05 06:06:29
问题 Problem with git current commands: Can't easily apply by a saved Stash by Message (message is a secondary param to track stashes more easily rather than index only) Can't remove specific Stash by Message Example: Must apply and revert via Stash's index. git stash push -m "Dev_Configs" git stash list // < Find index. git stash apply 0 And unapply "all" (not specific based on stash) git stash show -p | git apply -R 回答1: git version 2.25.0.windows.1 "HardCoded" WAY Save git stash push -m