返回顶部
首页 > 资讯 > 数据库 >mysql中怎么合并表
  • 926
分享到

mysql中怎么合并表

2024-04-02 19:04:59 926人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关Mysql中怎么合并表,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 mysql合并表去重目标:现有表a和b,把两个表中的数据

这期内容当中小编将会给大家带来有关Mysql中怎么合并表,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。


 
mysql合并表去重
目标:
现有表a和b,把两个表中的数据合并去重到c表中。其中a和b表中数据量大概在2千万左右。
基本情况
操作系统版本:Centos release 5.6 64位
操作系统内存:8G
版本:5.1.56-commUnity 64位
数据库初始化参数:默认
 
数据库表和数据量
表a:  www.2cto.com  
> desc a2kw;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| c1    | varchar(20) | YES  | MUL | NULL    |       |
| c2    | varchar(30) | YES  |     | NULL    |       |
| c3    | varchar(12) | YES  |     | NULL    |       |
| c4    | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
表b
mysql> desc b2kw;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| c1    | varchar(20) | YES  |     | NULL    |       |
| c2    | varchar(30) | YES  |     | NULL    |       |
| c3    | varchar(12) | YES  |     | NULL    |       |
| c4    | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
 
a和b表的数据概况如下
mysql> select * from a2kw limit 10;
+-----------+-----------+------+----------+
| c1        | c2        | c3   | c4       |
+-----------+-----------+------+----------+
| 662164461 | 131545534 | TOM0 | 20120520 |
| 226662142 | 605685564 | TOM0 | 20120516 |
| 527008225 | 172557633 | TOM0 | 20120514 |
| 574408183 | 350897450 | TOM0 | 20120510 |
| 781619324 | 583989494 | TOM0 | 20120510 |
| 158872754 | 775676430 | TOM0 | 20120512 |
| 815875622 | 631631832 | TOM0 | 20120514 |
| 905943640 | 477433083 | TOM0 | 20120514 |
| 660790641 | 616774715 | TOM0 | 20120512 |
| 999083595 | 953186525 | TOM0 | 20120513 |
+-----------+-----------+------+----------+
10 rows in set (0.01 sec)
 
基本步骤  www.2cto.com  
1、在B表上创建索引
mysql> select count(*) from b2kw;
+----------+
| count(*) |
+----------+
| 20000002 |
+----------+
1 row in set (0.00 sec)
mysql> create index ind_b2kw_c1 on  b2kw(c1);
Query OK, 20000002 rows affected (1 min 2.94 sec)
Records: 20000002  Duplicates: 0  Warnings: 0
数据量为:20000002 ,时间为:1 min 2.94 sec
2、把a、b分别插入中间表temp表中
 
创建中间表
mysql> create table temp  select * from c2kw where 1=2;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0
插入数据
mysql> insert into temp  select * from a2kw;
Query OK, 20000002 rows affected (13.23 sec)
Records: 20000002  Duplicates: 0  Warnings: 0
mysql> insert into temp  select * from b2kw;
Query OK, 20000002 rows affected (13.27 sec)
Records: 20000002  Duplicates: 0  Warnings: 0
   www.2cto.com  
mysql> select count(*) from temp;
+----------+
| count(*) |
+----------+
| 40000004 |
+----------+
1 row in set (0.00 sec)
数据量为:40000004 ,时间为:26.50 sec
3、temp建立联合索引,强制索引去掉重复数据
mysql> create index ind_temp_c123 on temp(c1,c2,c3);
Query OK, 40000004 rows affected (3 min 43.87 sec)
Records: 40000004  Duplicates: 0  Warnings: 0
查看执行计划
mysql> explain select c1,c2,c3,max(c4) from temp FORCE INDEX
(ind_temp_c123) group by c1,c2,c3 ;
+----+-------------+-------+-------+---------------+----------
-----+---------+------+----------+-------+
| id | select_type | table | type  | possible_keys | key      
    | key_len | ref  | rows     | Extra |
+----+-------------+-------+-------+---------------+-------------
--+---------+------+----------+-------+
|  1 | SIMPLE      | temp  | index | NULL          | ind_temp_c123 | 71  
   | NULL | 40000004 |       |
+----+-------------+-------+  www.2cto.com  -------+---------------+--------
-------+---------+------+----------+-------+
1 row in set (0.05 sec)
 
mysql> insert into c2kw select c1,c2,c3,max(c4) from temp
FORCE INDEX (ind_temp_c123) group by c1,c2,c3 ;
Query OK, 20000004 rows affected (2 min 0.85 sec)
Records: 20000004  Duplicates: 0  Warnings: 0
实际大约花费实际为:6 min
 
4、删除中间表
mysql> drop table temp;
Query OK, 0 rows affected (0.99 sec)
实际大约花费实际为:1 sec
 
5、建立c索引
mysql> create index ind_c2kw_c1 on c2kw(c1);
Query OK, 20000004 rows affected (49.74 sec)
Records: 20000004  Duplicates: 0  Warnings: 0
mysql> create index ind_c2kw_c2 on c2kw(c2);
Query OK, 20000004 rows affected (1 min 47.20 sec)
Records: 20000004  Duplicates: 0  Warnings: 0
mysql> create index ind_c2kw_c3 on c2kw(c3);
Query OK, 20000004 rows affected (2 min 42.02 sec)
Records: 20000004  Duplicates: 0  Warnings: 0
实际大约花费实际为:5分钟  www.2cto.com  
 
6、清空a、b表
mysql> truncate table a2kw;
Query OK, 0 rows affected (1.15 sec)
mysql> truncate table b2kw;
Query OK, 0 rows affected (1.34 sec)

上述就是小编为大家分享的mysql中怎么合并表了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql中怎么合并表

本文链接: https://lsjlt.com/news/58958.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql中怎么合并表
    这期内容当中小编将会给大家带来有关mysql中怎么合并表,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 mysql合并表去重目标:现有表a和b,把两个表中的数据...
    99+
    2024-04-02
  • mysql怎么合并两个表
    mysql怎么合并两个表?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql合并两个表的方法:首先确认这两张表的字段必...
    99+
    2024-04-02
  • 怎么在html中合并表格
    怎么在html中合并表格?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HTML的表格及单元格合并表格<!DOCTYPE html><html&g...
    99+
    2023-06-15
  • MySQL怎么将两个表格中的内容合并
    在MySQL中,可以使用UNION操作符将两个表格中的内容合并。UNION操作符用于将两个或多个SELECT...
    99+
    2024-03-15
    MySQL
  • MySQL中怎么实现跨表更新与数据并合
    本篇文章为大家展示了MySQL中怎么实现跨表更新与数据并合,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  MySQL数据库如何实现跨表更新与数据并合  例子是这样...
    99+
    2024-04-02
  • mysql多张表合并一张表
      mysql 合并查询,把两张或多张没有关系的表合起来查询并且排序 select * from (select 排序字段  as time ,其他字段 from 表一 union select  排...
    99+
    2023-08-31
    mysql 数据库 sql
  • python怎么合并列表中的元素
    可以使用`+`操作符将两个列表合并成一个新的列表。例如,假设有两个列表`list1`和`list2`,我们可以使用以下代码将它们合并...
    99+
    2023-09-06
    python
  • oracle怎么合并两个表
    在Oracle中,可以使用INSERT INTO SELECT语句来合并两个表。假设有两个表:table1和table2,它...
    99+
    2023-08-25
    oracle
  • MySQL中怎么使用group_concat合并列
    这篇文章给大家介绍MySQL中怎么使用group_concat合并列,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。测试创建一个测试表进行测试create table ...
    99+
    2024-04-02
  • 如何合并两个 MySQL 表?
    要合并两个 MySQL 表,请使用以下语法 -INSERT IGNORE INTO yourTableName1 select *from yourTableName2;我们将创建两个包含一些记录的表。之后,合并过程将开始使用上述...
    99+
    2023-10-22
  • sql怎么合并多个表中的数据
    在SQL中,可以使用JOIN语句来合并多个表中的数据。JOIN语句用于将两个或多个表中的行连接在一起,形成一个新的结果集。常用的JO...
    99+
    2023-09-23
    sql
  • sql中union多表合并怎么实现
    在SQL中,使用UNION操作符可以将多个表的结果集合并为一个结果集。具体实现方法如下: SELECT column...
    99+
    2024-04-09
    sql union
  • mysql中合并两张表的简单方法
    本文主要给大家简单讲讲mysql中合并两张表的简单方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql中合并两张表的简单方法这篇文章可以给大家带来一...
    99+
    2024-04-02
  • python怎么合并两个列表
    要将两个列表合并,可以使用 "+" 操作符或者 extend() 方法。使用 "+" 操作符:```pythonlist1 = [1...
    99+
    2023-09-20
    python
  • Java有序链表怎么合并
    这篇文章主要介绍了Java有序链表怎么合并的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java有序链表怎么合并文章都会有所收获,下面我们一起来看看吧。问题将两个升序链表合并为一个新的升序链表并返回。新链表是通...
    99+
    2023-07-06
  • sql加密的表怎么合并
    要合并两个含有加密数据的表,需要先解密其中一个表的数据,然后再将解密后的数据插入到另一个表中。这样可以确保加密数据的完整性和一致性。...
    99+
    2024-04-08
    sql
  • python怎么合并两个列表并排序
    在Python中,可以使用`+`操作符来合并两个列表,并使用`sorted()`函数对合并后的列表进行排序。下面是一个示例代码:``...
    99+
    2023-08-15
    python
  • oracle两张表怎么合并成一张表
    要合并两张表,你可以使用SQL的`UNION`操作符。`UNION`操作符用于合并两个或多个`SELECT`语句的结果集,并返回一个单一的结果集。使用`UNION`操作符合并两张表的语法如下:```sql...
    99+
    2023-08-09
    oracle
  • oracle中怎么使用union合并两个表
    在Oracle中,使用UNION操作符可以合并两个或多个表的查询结果。以下是使用UNION合并两个表的基本语法:``...
    99+
    2023-08-11
    oracle union
  • sql怎么合并两个数据库中的表
    可以使用以下方法合并两个数据库中的表: 使用INSERT INTO语句:将源数据库中的表数据插入到目标数据库中的表中。例如: I...
    99+
    2024-04-09
    sql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作