一,锁
(1)锁的优点:
1. 一致性:一次只允许一个用户修改数据,从而提供统一数据
2. 完整性:向所有用户提供正确的数据
3.并发性:允许多个用户访问统一数据
(2)锁的种类
锁分为:行级锁和表级锁
(3)行级锁的使用(又叫排它锁)
1.语法:select....for update [OF column_list] [WAIT n | NOWAIT]
其中:OF子句用于指定预先被更新的列。
WAIT 或 NOWAIT WAIT字句指定等待其他用户释放锁的秒数,防止无限期等待,而NOWAIT则是不等待
这个语句的好处有:1.防止无限期等待被锁定的行。
2.允许在应用程序中对锁的等待时间进行控制。
(4)表级锁的使用
1.语法:lock table table_name in lock_name mode [ NOWAIT ]
其中:lock_name是锁定的模式。
NOWAIT字句防止无限期等待其他用户释放资源
二。表分区
(1)表分区分为4中:范围分区、散列分区、列表分区、复合分区
(2)范围分区
1.语法:partition by range(column_name)(
partition part1 value less than(range1) [ tablespace tbs1 ],
partition part2 value less than(range1) [ tablespace tbs2 ],
......
partition partN value less than(maxvalue) [ tablespace tbsN ])
其中:column_name是以其为基础创建范围分区的列,特定行的该列值成为分区键。
part1...partN是分区的名称
range1...maxvalue是分区的边界值
tbs-....tbsN分区所在表空间的名称
(3)散列分区
1.语法:partition by hash(column_name)
partitions number
或
partition by hash(column_name)(
partition part1 [ tablespace tbs1 ],
partition part2 [ tablespace tbs2 ],
.......
partition partN [ tablespace tbsN ],
)
(4)复合分区
1.语法:partition by range(column_name1)
subpartition by hash(column_name2)
subpartitions number
(partition part1 value less than(range1),
....
partition partN value less than(maxvalue))
其中:column_name1是以其为基础创建范围分区的列。
column_name2是以其为基础创建散列分区的列
part1....partN是分区的名称
range1.....maxvalue是分区的边界值
number要创建子分区的数目。
(5)列表分区
1.语法:partition by list(column_name)(
partition part1 value(values_list1),
......
partition partN value(default))
其中:column_name1是以其为基础创建范围分区的列
part1...partN是分区的名称
values_list是对应分区键值得列表。
default关键字允许存储前面的分区不能存储的记录。
三。分区表的操作
其实对分区表的操作,增加和往常一样都是用insert into ,但是删、改、查,则需要在表明的后面加上partition(分区名)
四。分区表的维护
1.添加分区
alter table .... add rartition用于在现有的最后一个分区之后添加新的分区
例:演示在saless2表中添加新的分区p4
alter table sales2 add partition p4 values less than(4000);
2.删除分区
alter table...drop partitoin用来删除分区
例:删除sales2表中的p4分区
alter table sales2 drop partition p4;
3.截断分区
alter table....truncate partition来截断分区,截断分区将删除表分区中的所有记录。
例:删除sales2表中p3分区的所有记录
alter table sales2 truncate partiton p3;
4.合并分区
例:将sales表中的p1和p2合并成一个p2分区
alter table sales2 merge partition p1,p2 into partition p2;
5.拆分分区
使用split partition 语句,允许用户将一个分区拆分成两个分区
例:将slaes2中的p2分成两个分区
alter table sales2 split partition p2 at (1000) into (partition p11,partition p21);