首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL|并发控制

MySQL|并发控制

作者头像
heidsoft
发布于 2022-03-14 11:28:29
发布于 2022-03-14 11:28:29
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

基于封技术、基于时戳技术、基于有效性检查、MVCC 等技术是并发控制技术

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table z (
    -> a int not null,
    -> b int null,
    -> c int not null,
    -> d int not null,
    -> unique key (b),
    -> unique key (d),
    -> unique key (c));
Query OK, 0 rows affected (0.09 sec)

mysql> insert into z select 1,2,3,4;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into z select 5,6,7,8;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into z select 9,10,11,12;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select a,b,c,d,_rowid from z;
+---+------+----+----+--------+
| a | b    | c  | d  | _rowid |
+---+------+----+----+--------+
| 1 |    2 |  3 |  4 |      4 |
| 5 |    6 |  7 |  8 |      8 |
| 9 |   10 | 11 | 12 |     12 |
+---+------+----+----+--------+
3 rows in set (0.02 sec)

d列先定义,所以d被先定义为主键

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table a(
    -> a int,
    -> b int,
    -> primary key(a,b)
    -> )engine=InnoDB;
Query OK, 0 rows affected (0.04 sec)

mysql> insert into a select 1,1
    -> ;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select a,_rowid from a;
ERROR 1054 (42S22): Unknown column '_rowid' in 'field list'
mysql>

如果是多个列定义到主键,则_rowid无法获取主键

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云数智圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL8索引篇:性能提升了100%!!
今天我们一起来聊聊MySQL 8.x版本中新增的三大索引。MySQL 8.x中新增了三种索引方式,这三种索引方式直接让MySQL原地起飞了,如下所示。
冰河
2022/06/15
3K0
MySQL 8.0 之Index Skip Scan
MySQL 8.0.13开始支持 index skip scan 也即索引跳跃扫描。该优化方式支持那些SQL在不符合组合索引最左前缀的原则的情况,优化器依然能组使用组合索引。
用户1278550
2020/06/10
2.8K1
玩转Mysql系列 - 第23篇:mysql索引管理详解
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。
路人甲Java
2019/10/15
5870
玩转Mysql系列 - 第23篇:mysql索引管理详解
你知道MySQL 8.0中的索引有哪些新特性吗?看这一篇就够了!!!
在之前MySQL的版本中,只能通过显式的方式删除索引,如果删除后发现索引删错了,又只能通过创建索引的方式将删除的索引添加回来,如果数据库中的数据量非常大,或者表比较大,这种操作的成本非常高。在MySQL 8.0中,只需要将这个索引先设置为隐藏索引,使查询优化器不再使用这个索引,但是,此时这个索引还是需要MySQL后台进行维护,当确认将这个索引设置为隐藏索引系统不会受到影响时,再将索引彻底删除。这就是软删除功能。
冰河
2020/10/29
1.3K0
你知道MySQL 8.0中的索引有哪些新特性吗?看这一篇就够了!!!
Mysql系列第二十二讲 mysql索引管理详解
每个表有且一定会有一个聚集索引,整个表的数据存储在聚集索引中,mysql索引是采用B+树结构保存在文件中,叶子节点存储主键的值以及对应记录的数据,非叶子节点不存储记录的数据,只存储主键的值。当表中未指定主键时,mysql内部会自动给每条记录添加一个隐藏的rowid字段(默认4个字节)作为主键,用rowid构建聚集索引。
易兮科技
2020/10/16
3540
Mysql系列第二十二讲 mysql索引管理详解
7天快速掌握MySQL-DAY3
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
披头
2019/12/26
7260
MySQL8.0之不可见索引
MySQL8.0引入了不可见索引(invisible index)和不可见列(invisible column),今天我们来说说这个特性。
AsiaYe
2021/06/09
6340
MySQL8.0之不可见索引
MYSQL回顾(表操作相关)
数据库表的操作主要包括修改表名、查看表结构、添加字段、删除字段、修改字段类型、修改字段名、给表设置主键、设置自增长字段、删除表、清空表。下面会一一举例。
VV木公子
2020/02/18
5.4K0
MySQL中的蠕虫复制操作指南
还有一种,主键没有自增长,那不复制主键可以吗?答案是不行。因为主键的前提是不能为空,赋值则发生主键冲突,不赋值则引发非空约束(多谢评论区的老哥,以前没有考虑到这种情况)。
挨踢小子部落阁
2019/08/20
1.1K0
MySQL只索引组织表
今天没怎么学习,简单写下MySQL里面innodb存储引擎下的索引组织表吧。
AsiaYe
2019/11/06
1.7K0
浅析MySQL存储引擎序列属性
墨墨导读:为了达到标识的目的,许多应用程序需要生成唯一编号,比如:商品编号、交易流水号等。MySQL数据库同样能够支持这样的需求场景,AUTO_INCREMENT就是为MySQL实现序列的方式,它会自动生成序列编号。
数据和云
2020/09/14
1.7K0
mysql-外键的三种关系
mysql> create table press(id int primary key auto_increment,name varchar(20));
py3study
2018/08/03
9070
MySQL之索引
#alter添加语法:alter table 表名 add primary key(列名)
老油条IT记
2020/03/22
7260
MySQL replace into的使用细则(r10笔记第48天)
在Oracle中有merge into的语法,可以达到一个语句完成同时修改,添加数据的功能,MySQL里面没有merge into的语法,却有replace into。 我们来看看replace into的使用细则。 为了方便演示,我首先创建一个表 users create table users( user_id int(11) unsigned not null, user_name varchar(64) default null, primary key(user_id) )engine=innod
jeanron100
2018/03/19
1.1K0
MySQL replace into的使用细则(r10笔记第48天)
MySQL 5.7中锁的一个通用问题
前几天分析了一个死锁的问题,有一个网友看了以后,就发了邮件给我问一个问题。一般来说,能够发送邮件提出问题的同学,都是很认真的,因为他要准备好日志,准备好操作过程,准备好他已经在做的事情。所以这类问题,我都会认真的分析一下,如果没有结果,那就继续分析再等等,掐指一算,有很多问题已经拖了好久了。 这位网友提的一个问题,我看了以后感觉很是奇怪,因为有些颠覆我对MySQL锁的一些认识。这该如何是好。 这个环境的事务隔离级别是RR,存在主键,存在范围查询。 如何复现这个问题,网友提供了信息。 创建表
jeanron100
2018/03/21
2.4K0
Mysql系列 - 第4天:DDL常见操作汇总
DDL:Data Define Language数据定义语言,主要用来对数据库、表进行一些管理操作。
路人甲Java
2019/09/16
1K0
Mysql基础篇--分区类型
分区是按照一定规则把一个表分解成多个更小的表,更容易管理的部分,当访问数据库应用而言,逻辑上是一个表或一个索引,实际上是可以有数个物理对象组成,每个分区都是一个独立的对象,可以独自处理作为表的一部分进行数据处理
小土豆Yuki
2020/06/15
1K0
故障分析 | 为什么 MySQL 8.0.13 要引入新参数 sql_require_primary_key?
客户在测试环境给一批无主键表新增自增主键,发现个别表在新增自增主键后出现了主从数据不一致。
爱可生开源社区
2025/01/22
1610
故障分析 | 为什么 MySQL 8.0.13 要引入新参数  sql_require_primary_key?
【MySQL初阶】表的增删查改(create、retrieve、update、delete)
这里明明给 chinese + math + english 取了别名,怎么在where条件中不能用呢? 这和 select 语句的执行顺序有关:
_小羊_
2025/05/17
3300
【MySQL初阶】表的增删查改(create、retrieve、update、delete)
MySQL索引的一些小细
忙活了一天,晚上抽空做了几个关于索引和主键的小测试,记录一下,希望对大家有帮助。(所有测试都是在MySQL5.7的环境下测试的)
AsiaYe
2019/11/06
5760
相关推荐
MySQL8索引篇:性能提升了100%!!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档