MySQL中如何合并结构和记录数都不同的两个表?
举例如下:表1结构:姓名,存款,现金(“姓名”为主键,共4条记录)表2结构:姓名,经验值(“姓名”为主键,共3条记录)如何把表2合并到表1?实际上两个表的字段数和记录数都...
举例如下:
表1结构:姓名,存款,现金 (“姓名”为主键,共4条记录)
表2结构:姓名,经验值 (“姓名”为主键,共3条记录)
如何把表2合并到表1?
实际上两个表的字段数和记录数都很多,不可能逐条操作。 展开
表1结构:姓名,存款,现金 (“姓名”为主键,共4条记录)
表2结构:姓名,经验值 (“姓名”为主键,共3条记录)
如何把表2合并到表1?
实际上两个表的字段数和记录数都很多,不可能逐条操作。 展开
展开全部
合并的第一个步骤,是在修改【表1】结构,增加【经验值】列,这个你会吧,可以写SQL,也可以在管理界面点鼠标完成。
合并的第二个步骤,是把【表1】现有数据的经验值更新,SQL语句:
UPDATE 表1 SET 经验值=(SELECT 经验值 FROM 表2 WHERE 表1.姓名=表2.姓名
合并的第三个步骤,把【表2】中剩下的数据复制到【表1】中,SQL语句:
DELETE FROM 表2 WHERE 姓名 IN (SELECT 姓名 FROM 表1);
INSERT INTO 表1(姓名,经验值) SELECT 姓名,经验值 FROM 表2
合并的第二个步骤,是把【表1】现有数据的经验值更新,SQL语句:
UPDATE 表1 SET 经验值=(SELECT 经验值 FROM 表2 WHERE 表1.姓名=表2.姓名
合并的第三个步骤,把【表2】中剩下的数据复制到【表1】中,SQL语句:
DELETE FROM 表2 WHERE 姓名 IN (SELECT 姓名 FROM 表1);
INSERT INTO 表1(姓名,经验值) SELECT 姓名,经验值 FROM 表2
2021-01-07 · MySQL开源数据库领先者
关注
展开全部
MySQL InnoDB 表数据页或者二级索引页(简称数据页或者索引页)的合并与分裂对 InnoDB 表整体性能影响很大;数据页的这类操作越多,对 InnoDB 表数据写入的影响越大。
MySQL 提供了一个数据页合并临界值(MERGE_THRESHOLD),在某些场景下,可以人为介入,减少数据页的合并与分裂。
在 InnoDB 表里,每个数据页默认16K 大小,默认 MERGE_THRESHOLD 值为 50,取值范围从 1 到 50,默认值即是最大值。也就是当页面记录数占比小于 50% 时,MySQL 会把这页和相邻的页面进行合并,保证数据页的紧凑,避免太多浪费。
MySQL 提供了一个数据页合并临界值(MERGE_THRESHOLD),在某些场景下,可以人为介入,减少数据页的合并与分裂。
在 InnoDB 表里,每个数据页默认16K 大小,默认 MERGE_THRESHOLD 值为 50,取值范围从 1 到 50,默认值即是最大值。也就是当页面记录数占比小于 50% 时,MySQL 会把这页和相邻的页面进行合并,保证数据页的紧凑,避免太多浪费。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询