此文章主要是对Oracle数据库锁机制的详细研究,首先我们要介绍的是Oracle数据库锁的类型,同时也阐述,在实际应用中我们经常会遇到的与锁相关 的异常情况,特别对经常遇到的由于等待锁而使事务被挂起的问题进行了定位及解决,并对死锁这一比较严重的现象,提出了相应的解决方法和具体的分析过程。
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。
加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对Oracle数据库的事务进行并发控制。
在实际应用中经常会遇到的与锁相关的异常情况,如由于等待锁事务被挂起、死锁等现象,如果不能及时地解决,将严重影响应用的正常执行,而目前对于该类问题的解决缺乏系统化研究和指导,本文在总结实际经验的基础上,提出了相应的解决方法和具体的分析过程。
Oracle数据库的锁类型
根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护数据库的内部结构。
DML锁的目的在于保证并发情况下的数据完整性,本文主要讨论DML锁。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。
当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标 志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。
TM锁包括了SS、SX、S、X等多种模式,在Oracle数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。如表1所示。
在数据行上只有X锁(排他锁)。在 Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行 DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。
当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。
TX锁等待的分析
在介绍了有关地Oracle数据库锁的种类后,下面讨论如何有效地监控和解决锁等待现象,及在产生死锁时如何定位死锁的原因。
监控锁的相关视图 数据字典是Oracle数据库的重要组成部分,用户可以通过查询数据字典视图来获得数据库的信息。和锁相关的数据字典视图如表2所示。
TX锁等待的监控和解决在日常工作中,如果发现在执行某条SQL时数据库长时间没有响应,很可能是产生了TX锁等待的现象。为解决这个问题,首先应该找出持锁的事务,然后再进行相关的处理,如提交事务或强行中断事务。
死锁的监控和解决在数据库中,当两个或多个会话请求同一个资源时会产生死锁的现象。死锁的常见类型是行级锁死锁和页级锁死锁,Oracle数据库中一般使用行级锁。下面主要讨论行级锁的死锁现象。
当Oracle检测到死锁产生时,中断并回滚死锁相关语句的执行,报ORA-00060的错误并记录在Oracle数据库的日志文件alertSID.log中。同时在user_dump_dest下产生了一个跟踪文件,详细描述死锁的相关信息。
在日常工作中,如果发现在日志文件中记录了ora-00060的错误信息,则表明产生了死锁。这时需要找到对应的跟踪文件,根据跟踪文件的信息定位产生的原因。
如果查询结果表明,死锁是由于bitmap索引引起的,将IND_T_PRODUCT_HIS_STATE索引改为normal索引后,即可解决死锁的问题。
表1 Oracle的TM锁类型
锁模式 锁描述 解释 SQL操作
0 none
1 NULL 空 Select
2 SS(Row-S) 行级共享锁,其他对象只能查询这些数据行 select for update、Lock for update、Lock row share
3 SX(Row-X) 行级排它锁,在提交前不允许做DML操作 Insert、Update、Delete、Lock row share
4 S(Share) 共享锁 Create index、Lock share
5 SSX(S/Row-X) 共享行级排它锁 Lock share row exclusive
6 X(Exclusive) 排它锁 Alter table、Drop able、Drop index、Truncate table 、Lock exclusive
-
pgsql数据库默认配置事务类型_Postgresql常用配置参数详解
2020-12-21 11:53:49#查看所有数据库参数的值https://www.cndba.cn/xty/article/3529选项默认值说明是否优化原因max_connections100允许客户端的最大并发连接数目是生产环境需与研发确认fsyncon强制把数据同步更新到磁盘是因为系统的IO...Postgresql常用配置参数详解:
show all; #查看所有数据库参数的值
https://www.cndba.cn/xty/article/3529
选项
默认值
说明
是否优化
原因
max_connections
100
允许客户端的最大并发连接数目
是
生产环境需与研发确认
fsync
on
强制把数据同步更新到磁盘
是
因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为off
shared_buffers
24MB
决定有多少内存可以被PostgreSQL用于缓存数据(推荐内存的1/4)
是
在IO压力很大的情况下,提高该值可以减少IO
work_mem
1MB
使内部排序和一些复杂的查询都在这个buffer中完成
是
有助提高排序等操作的速度,并且减低IO
effective_cache_size
128MB
优化器假设一个查询可以用的最大内存,和shared_buffers无关(推荐内存的1/2)
https://www.cndba.cn/xty/article/3529
是
设置稍大,优化器更倾向使用索引扫描而不是顺序扫描
maintenance_work_mem
16MB
内存只是被VACUUM等耗费资源较多的命令调用时使用
是
该值调大,能加快命令的执行
https://www.cndba.cn/xty/article/3529
wal_buffer
768kB
日志缓存区的大小
https://www.cndba.cn/xty/article/3529
是
可以降低IO,如果遇上比较多的并发短事务,应该和commit_delay一起用
checkpoint_segments
3
设置wal log的最大数量数(一个log的大小为16M)
是
默认的48M的缓存是一个严重的瓶颈,基本上都要设置为10以上
checkpoint_completion_target
0.5
表示checkpoint的完成时间要在两个checkpoint间隔时间的N%内完成https://www.cndba.cn/xty/article/3529
是
能降低平均写入的开销
commit_delay
0
事务提交后,日志写到wal log上到wal_buffer写入到磁盘的时间间隔。需要配合commit_sibling
是
能够一次写入多个事务,减少IO,提高性能
commit_siblings
5
设置触发commit_delay的并发事务数,根据并发事务多少来配置
是
减少IO,提高性能
https://www.cndba.cn/xty/article/3529
3
预留给超级用户的数据库连接数目,该值必须小于max_connections。
是
减少IO,提高性能
查询算法优化 Genetic Query Optimizer(重点)
1、下列参数控制优化器使用的遗传算法。除非对遗传算法特别了解,一般情况下,使用它们默认值即可。
geqo (boolean)
打开或者关闭遗传优化器。默认值是on。
geqo_threshold (integer)
确定使用遗传优化器的查询类型。默认值是12。如果FROM子句中引用的的表的数目超过geqo_threshold的值,就会使用遗传优化器。对于简单的查询使用穷举优化器。
geqo_effort (integer)
控制遗传优化器在生成查询计划需要的时间和查询计划的有效性之间做一个折中。有效的取值范围是1到 10。默认值是5。值越大,优化器花在选择查询计划的上的时间越长,同时找到一个最优的查询计划的可能性就越大。系统通常不直接使用geqo_effort的值,而是使用它的值来计算参数geqo_pool_size和geqo_generations的默认。
geqo_pool_size (integer)
控制遗传优化器的池(pool)大小。默认值是0。池大小是遗传群体中的个体数目。至少是2,典型的取值在10和1000之间。如果参数的值是0,系统会自动根据geqo_effort的值和查询中引用的表的个数选择一个默认值。
geqo_generations (integer)
控制遗传优化器的代(generation)的大小。默认值是0。代是遗传算法的迭代次数。至少是1,典型的取值范围与池的取值范围相同。如果参数的值是0,系统会自动根据geqo_pool_size的值和选择一个默认值。
geqo_selection_bias (floating point)
控制遗传优化器的代选择偏差(selection bias)的大小。默认值是2。取值范围在1.50到2.00之间。
https://www.cndba.cn/xty/article/3529
https://www.cndba.cn/xty/article/3529
2、、其它优化器参数 Other Planner Options
default_statistics_target (integer)
设置默认的收集优化器统计数据的目标值。它的值越大,ANALYZE操作的执行的时间越长,扫描的数据行的个数也就越多,得到的优化器统计数据就越准确。也可以使用命令ALTER TABLE ... ALTER COLUMN ... SET STATISTICS来为表的每个列设置一个单独的统计数据目标值,这个值的作用与参数default_statistics_target是一样,它只影响相关的列的统计数据收集过程。默认值是10。
constraint_exclusion (boolean)
https://www.cndba.cn/xty/article/3529
如果该参数的值是on,查询优化器将使用表上的约束条件来优化查询。如果它的值是off,查询优化器不会使用表上的约束条件来优化查询。默认值是off。
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
版权声明:本文为博主原创文章,未经博主允许不得转载。
-
MySQL数据库 常用命令 SQL语法组成 数据库事务 元数据 反射
2020-05-23 17:12:11常用的数据库: MySQL命令: mysqladmin命令: SQL语法组成: DDL语句: 数值列类型: 字符串列类型: 日期和时间列类型: 约束: DML语句: 主表和从表: drop,truncate,delete的区别: 高级查询: 数据库事务: ...数据库基础知识:
数据库由一批数据构成的有序集合,这些数据被分门别类地存放在一些结构化的数据表里,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为关系型数据库。
数据库:按照数据结构来组织、存储、和管理数据的仓库。数据库发展历史:
- 人工管理阶段
人力手工整理存储数据 - 文件系统阶段
使用磁盘文件来存储数据 - 数据库系统阶段
关系型数据库 - 高级数据库阶段
关系-对象型数据库
常用的数据库:
- Oracle
应用广泛、功能强大、分布式数据库系统 “关系-对象“型数据库 - MySQL
快捷 可靠 开源 免费 与PHP组成经典的LAMP组合
特征:性能快捷、优化SQL语言 容易使用 多线程和可靠性 多用户支持
可移植性和开放源代码 遵循国际标准和国际化支持 为多种编程语言提供API - SQL Server
针对不同用户群体的五个特殊的版本 易用性好 - DB2
应用于大型应用系统,具有较好的可伸缩性
MySQL命令:
登录命令:mysql -h 127.0.0.1 -u root -p root;
选定默认数据库:use dbname;
显示所有数据库:show databases;
显示默认数据库中所有的表:show tables;
放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看mysql服务器状态信息:\s
用来备份:mysqldumpmysqladmin命令:
创建数据库:mysqladmin -u root -p create newdb
删除数据库:mysqladmin -u root -p drop newdb
更改密码:mysqladmin -u root -p password “newpassword”SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。
SQL语法组成:
-
DML(Data Manipulation Language数据操作语言)
查询、插入、删除和修改数据库中的数据
select insert update delete等 -
DCL(Data Control Language数据控制语言)
用来控制存取许可、存取权限等
grant revoke等 -
DDL(Data Definition Language数据定义语言)
用来建立数据库、数据库对象和定义其列
create table、drop table、alter table等 -
功能函数
日期函数、数学函数、字符函数、系统函数等
DDL语句
- 创建表:
create table 表名(
列名1 列类型 列约束,
列名2 列类型 列约束,
…); - 显示表结构:desc 表名
- 表复制:
create table 新表 select * from 旧表 ;复制表结构和数据
create table 新表 select * from 旧表 where 1=2; 只复制表结构 - 删除表:
drop table if exists 表名; - 修改表:
alter table 表名 action(修改的具体内容);
action可为以下语句:
add 列名 列类型 列约束 [first|after 列名]
add primary key (列名)
add foreign key(列名) references 表名(列名)
add 列名 set default 默认值
change 旧列名 新列名 列类型 列约束[first|after 列名]
modify 列名 列类型 列约束[first|after 列名]
drop 列名
drop primary key
engine 类型名 改变表类型
rename as 新列名 将表名更改 - 截断表:
truncate table 表名; 作用:将表中的所有数据全部清空,并且不能回退
drop与truncate的区别:
drop是删除表及数据
truncate只是清空表中的数据,表并没有删除数值列类型:
tinyint 非常小的整数 1字节
smallint 较小的整数 2字节
mediumint 中等大小的整数 3字节
int 标准整数 4字节
bigint 大整数 8字节
float 单精度浮点数 4字节
double 双精度浮点数 8字节
decimal 一个串的浮点数
字符串列类型:
char 定长字符串
varchar 可变长字符串
tinyblob 非常小的blob(二进制大对象)
blob 小blob
mediumblob 中等的blob
longblob 大blob
tinytext 非常小的文本串
text 小文本串
mediumtext 中等文本串
longtext 大文本串
enum 枚举 列可赋予某个枚举成员
set 集合 列可赋予多个集合成员
日期和时间列类型:
date “1000-01-01"到"9999-12-31” 3字节
time “-838:59:59"到"838:59:59” 3字节
datetime “1000-01-01 00:00:00"到"9999-12-31 23:59:59” 8字节
timestamp 19700101000000到2037年的某个时刻 4字节
year 1901到2155 1字节约束:
not null 非空约束
auto_increment 自动标识列 自增1,唯一标志符号或者顺序值
primary key 主键约束 列值不能重复且不为空
unique 唯一约束 被约束的列的取值不能重复,但可以为空
unsigned 无符号 此属性禁用负值,将数值的取值范围从零开始
foreign key 外键约束 通常为另外一个表的主键
default 默认值约束
character set name 指定字符集(仅适用于字符串)
check age>18 (mysql不支持) 检查约束主表和从表:
- 当主表中没有对应的记录时,不能将记录添加到子表
- 不能更改主表中的值而导致子表中的记录孤立
- 子表存在与主表对应的记录,不能从主表删除该行
- 删除主表前,先删子表
DML语句:
-
插入数据:
insert into 表名(列名) values(值列表);
insert into 表名(列名) select 列名 from 源表名; -
查询数据:
select *|列名,列名 from 表名
where 条件
group by (having)分组统计
order by 列名|表达式 排序(默认升序asc,desc为倒序)
limit start,length 对结果范围的限制
where子句中使用:
(not) between and:(不)在两数之间
in(值列表):在一个范围内相当于or
like:模糊查询 %通配符 _占位符
regexp:正则
is (not) null:(不)空
<=>:判断两列一样的值
五个聚合函数:
count( 列名| * ):计数
sum(列):求总和
avg(列):求平均值
max(列):最大值
min(列):最小值
where与having的区别:
where在分组统计之前执行,having在分组统计之后执行
where中不能使用聚合函数作为条件,having中可以使用聚合函数 -
修改数据:
update 表名 set 列名=值 where 条件; -
删除数据:
delete from 表名 where条件;
delete from 表名 where 字段名 in(值列表);
drop,truncate,delete的区别:
drop:删除表结构和表中的所有数据,不可回退
truncate:清空表中的数据,但不删除表结构,也不可回退
delete:可以有选择性的删除部分数据,可以回退高级查询:
-
多表查询:
select * from 表1,表2;
查询结果为两个表中数据的乘积,笛卡尔积
表连接条件可以使用等值连接和非等值连接
内连接就是等值连接 -
子查询
也称为嵌套查询,可以放置的位置:from之后 where having
子查询在主查询之前一次执行完成,子查询的结果被主查询使用
数据库事务:
事务是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。事务的四个特性:
原子性:最小的执行单元,不能再分
一致性:从一个状态到另一个状态后,应保持一致
隔离性:两个事务互不干扰
持久性:一旦提交,不能回退事务操作的三个语句:
commit:提交
rollback:回退到事务开始处,撤销当前事务的所有操作
savepoint:设置保存点mysql的事务:
默认是自动提交事务
通过set autocommit=0 修改成手动提交元数据:
获取数据的数据就是元数据
数据库表的数据放到jdbc的ResultSet中
元数据是在执行查询操作的时候获取的
常用方法:
getColumnCount();获取数据库的字段个数
getColumnName(第一个); 获取数据库的字段名字
getColumnType(1);字段类型
getCatalogName(1);获取数据库名java中提供了 三种获取反射对象的方式:
1.Class.forName(“类的全路径名包括 类名”);
2.对象.getClass(); 方法 , 这个方法是 Object 类的
3.类名.class我们拿到这个反射对象就可以 获取类的结构
类由哪些属性,方法,构造器组成,属性的访问修饰符, 数据类型…通过反射对象获取类的属性 Field
Field[] field = clazz.getFields(); 获取所有公共的属性对象
Field类的常用方法:
getName();获取共有的属性名Field[] field = clazz.getDeclaredFields();获取所有属性 包括私有
getName();field.getModifiers();
field.getType(); - 人工管理阶段
-
Oracle数据库锁的常用类型
2012-02-01 10:53:59此文章主要是对Oracle数据库锁机制的详细研究,首先我们要介绍的是Oracle数据库锁的类型,同时也阐述,在实际应用中我们经常会遇到的与锁相关 的异常情况,特别对经常遇到的由于等待锁而使事务被挂起的问题进行了...转载于:https://blog.51cto.com/3595505/770266
-
常用的数据库备份类型有哪些?
2019-11-05 18:38:49对数据库的备份是网站管理人员的必修课,那么常用的数据库备份方式有哪些呢?应如何选择? 数据库备份有四种类型,分别应用于不同的场合,下面简要介绍一下。 1、完全备份 这是大多数人常用的方式,它可以备份...对数据库的备份是网站管理人员的必修课,那么常用的数据库备份方式有哪些呢?应如何选择?
数据库备份有四种类型,分别应用于不同的场合,下面简要介绍一下。1、完全备份
这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。
2、事务日志备份
事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志。
3、差异备份
也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份。
4、文件备份
数据库可以由硬盘上的许多文件构成。如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分。由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用。
-
mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别
2021-01-28 03:25:02MyISAM 和 InnoDB 讲解InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调... -
Redis 数据库常用知识
2020-05-28 10:27:00Redis 数据库常用知识常用命令高级的key:value存储系统lists集合有序集合哈希持久化的方式主从同步事务处理配置文件 常用命令 高级的key:value存储系统 支持五种数据类型: 1.字符串(strings) 2.字符串列表... -
python基础 day11 上 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 事务 索引...
2019-01-20 20:28:00本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 ...mysql 数据类型 ...常用mysql命令 ...创建数据库 ...事务 ...数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一... -
数据库引擎,创建表的完整语法,数据库的常用类型,约束条件(主键,唯一,自增,外键)...
2019-01-21 21:01:00数据库引擎 决定数据存取数据的方式 ...myisam:查询效率由于innodb,不需要支持事务,行级锁,外键,可以选用myisam来优化数据库 mysql> create table t1(id int)engine=innodb; mysql> create table t2... -
mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件
2018-09-12 20:56:00引擎 ...myisam:查询效率由于innodb,不需要支持事务,行级锁,外键,可以选用myisam来优化数据库 mysql> create table t1(id int)engine=innodb; mysql> create table t2(id int)engine=... -
数据库备份的几种类型
2017-07-19 10:29:29这可能是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但是呢,它也需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。 2、事务日志备份 ... -
mysql图片字段类型_分布式事务数据库 —-MySQL 数据库开发规范(第七节)
2020-12-05 12:58:19《分布式事务数据库 —-MySQL 数据库开发规范》一文更新到现在已经接近尾声了~Amy对之前的目录进行了调整...接下来我会为大家奉上更多实用的开源数据库和MySQL常用工具的干货分享。感兴趣的读者可以继续关注我哦。... -
mysql分片字段类型_分布式事务数据库 —-MySQL 数据库开发规范(第七节)
2021-02-08 03:03:06《分布式事务数据库 —-MySQL 数据库开发规范》一文更新到现在已经接近尾声了~Amy对之前的目录进行了调整...接下来我会为大家奉上更多实用的开源数据库和MySQL常用工具的干货分享。感兴趣的读者可以继续关注我哦。... -
Oracle数据库语言与数据类型
2020-07-13 09:37:20归纳了Oracle数据库常用的语句并分类如下 语言类型 命令(功能) 数据定义语言DDL CREATE(创建)ALTER(修改)DROP(删除) 数据操纵语言DML INSERT(插入)DELETE(删除)SELECT FOR(查询)UPDATE(更新) 数据查询... -
mysql引擎模式_mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件...
2021-02-10 10:10:16引擎show engines : 查看引擎innodb(默认引擎):支持事务,行级锁,外键myisam:查询效率由于innodb,不需要支持事务,行级锁,外键,可以选用myisam来优化数据库mysql> create table t1(id int)engine=innodb;... -
数据库——常用存储引擎
2018-11-29 13:01:10锁:主要作用是管理共享资源的并发访问,还可以用于实现事务的隔离性。 锁的类型: 共享锁(也称读锁) ...数据库系统会在死锁的事务中,找到一个占用资源最少的事务进行回滚操作,从而自动解决死锁。 MyI... -
各种类型的常见数据库及MYSQL最佳实践
2020-07-07 09:19:49常用的关系型数据库主要是 Oracle 和 MySQL。Oracle 功能强大,主要缺点就是贵。MySQL 是互联网行业中最流行的数据库,这不仅仅是因为 MySQL 免费,可以说关系数据库场景中你需要的功能,MySQL 都能很好得满足。后面... -
MySQL数据库备份以及常用备份工具集合
2020-12-15 14:03:35这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。 1.2事务日志备份 事务日志是一个... -
Mysql常用的几种数据库引擎比较
2019-05-22 11:38:58Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时... -
MySQL学习总结:MySQL的连接、数据库、数据类型、数据表、关键字、NULL 值处理、正则表达式、事务、ALTER...
2020-08-12 10:37:38一、MySQL的连接 mysql -u root -p 二、MySQL数据库 ...最常用的类型为INT (2)浮点型 2.日期和时间类型 3.字符串类型 四、MySQL数据表 1.创建数据表 CREATE TABLE table_name (column_name column_type); -
MySQL数据库中表类型MyISAM与InnoDB的区别
2016-03-09 17:53:58InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度... -
MySQL数据库设计常用技巧和设计规范(三):数据库设计规范
2020-11-02 18:04:41数据库设计规范数据库设计规范2.1 数据库设计2.1.1 库名2.1.2 表结构2.1.3 列数据类型优化2.1.4 索引设计2.1.5 分库分表、分区表2.1.6 字符集2.1.7 程序层DAO设计建议2.1.8 一个规范的建表语句示例2.2 SQL编写2.2.1 ... -
MySQL表类型,数据库引擎InnoDB和MYISAM的区别对比
2018-10-20 23:53:21InnoDB和MyISAM是在使用MySQL创建数据库表设计中最常用的两个类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比... -
常用得关系型数据库和非关系型数据库以及区别
2020-12-28 14:36:39非关系型数据库: NMongoDb、redis、NoSql、...优点:读写行很高,数据没有耦合性,容易扩展,存储的型式多 不单单只支持基础的储存类型图片形式/文档形式等 缺点:不提供sql支持,学习比较难,成本比较高,无事务处 -
hibernate mysql 关联查询_Java的Hibernate框架数据库操作中锁的使用和查询类型
2021-02-01 04:33:08Hibernate与数据库锁一、为什么要使用锁?要想弄清楚锁机制存在的原因,首先要了解事务的概念。事务是对数据库一系列相关的操作,它必须具备ACID特征:A(原子性):要么...我们常用的关系型数据库RDBMS实现了事务的... -
MySQL 数据库备份种类以及常用备份工具汇总
2019-07-03 13:42:57这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。 1.2事务日志备份 事务日志是...