4.数据库锁及表分区

简介:

1.数据库权限授权的语句:
     grant select,update,insert,delete on test(表名) to xiaoshan(用户名);
2.被授权用户访问表;注意,一定要加上授权用户的用户名
     select * from scott.test;
     update test set ename='xiaoshan'
     where empno=9000;
3.行级锁:
    ①行被排他锁定;
    ②在某行的锁被释放之前,其他用户不能修改此行;
    ③使用commit或rollback命令释放锁;
4.行级锁的获取:
    方式①:使用insert,update语句时,自动获取行级锁;
    方式②:select...for update子句,在表的一行或多行上放置排他锁,
                  用于防止其他用户更新该行。可以执行除更新之外的其他操作;
                 (锁定限定行:查询出行,并锁定之);
    select * from test for update of ename;锁定指定列(ename)
    select * from test for update wait 10;指定等待时间;
5.表级锁:
   ①保护表的数据;
   ②在多个用户同时访问数据时,确保数据的完整性;
   ③可以设置为三种模式:共享共享更新排他锁
      共享锁:lock table test in share mode;
                    任何用户都可以上锁;
                    仅允许其他用户进行查询操作;不能插入、更新、删除;
                    多个用户可以同时在同一表中放置共享锁;
    【scott>】lock table test in share mode;
    【小山>】update scott.test set ename='xiaoshan' where empno=7196; --这时将出现假死状态;
    【scott>】commit;
    【小山>】“已更新 1 行”;
      共享更新锁:lock table test in share update mode;
                           锁定要更新的行;
                           允许其他用户同时查询、插入、更新未锁定的行;
                           在select语句中使用“for update”子句。可以强制使用共享更新锁;
                           允许多个用户同时锁定表的不同行;
      排他锁:lock table 表名 in exclusive mode;
                   与其他两种锁相比,排他锁是限制性最强的表锁;
                   他仅允许其他用户查询数据;
                   不允许执行插入、删除和更新操作;
                   在同一时间仅允许一位用户在表上放置排他锁;

目录
相关文章
|
存储 固态存储 关系型数据库
Mysql数据库表分区存储到指定磁盘路径
0. 前提: mysql5.6.6以上的版本以上的版本才支持单表指定目录,且目录权限是mysql:mysql。 在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式、表文件个数也会有所差异。 mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd”,archive用“.arc ”,csv用“.csv”等。
790 0
Mysql数据库表分区存储到指定磁盘路径
|
存储 关系型数据库 MySQL
MYSQL数据库中表的进阶玩法——表分区
MYSQL数据库中表的进阶玩法——表分区
290 0
MYSQL数据库中表的进阶玩法——表分区
|
存储 Oracle 关系型数据库
Mysql数据库表分区深入详解
0、mysql数据库分区的由来? 1)传统不分区数据库痛点
225 0
Mysql数据库表分区深入详解
|
MySQL 数据库 关系型数据库
Mysql数据库表分区深入详解
本文是Mysql数据库表分区深入详解。
9338 0
|
MySQL 数据库 关系型数据库
Mysql数据库表分区存储到指定磁盘路径
在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式、表文件个数也会有所差异。
772 0
|
SQL 数据库 索引
【数据库】表分区
介绍:     分区表在逻辑上是一个表,而物理上是多个表。从用户角度来看,分区表和普通表是一样的。使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性。表分区简单理解就是表还是原先的表,但是根据不同条件分块的把数据存放到不同文件下。
1068 0
|
存储 关系型数据库 MySQL
|
监控 关系型数据库 MySQL
|
15天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
50 3
Mysql(4)—数据库索引
|
4天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
18 4