gpt4 book ai didi

mysql - 性能问题: Data importing in database

转载 作者:行者123 更新时间:2023-11-29 14:39:34 26 4
gpt4 key购买 nike

我正在使用MySQL v5.1

我的简单场景是,我想将一个数据库中的表导入大量数据到另一个数据库中的另一个表。并且另一个数据库中的表(将要插入数据的位置)将首先被截断。

详细来说,假设我有两个数据库,分别名为“db_one”和“db_two”。

db_one 有一个名为 db_one_cars 的表,其中包含6,000,000 条记录(数据量很大)。而db_two有一个名为db_two_cars的表,其中也包含大量数据。

我将首先删除db_two_cars中的所有数据(截断表),然后导入db_one_cars中的所有数据 db_two_cars。 (注:这两个表分别在两个数据库中)。

因此,我创建了一个 sql 文件,其内容如下:

TRUNCATE TABLE db_two_cars;

ALTER TABLE db_two_cars DISABLE KEYS;

INSERT INTO db_two_cars (car_id, name, customer, company_name)
SELECT id, CONCAT('c-', name), customer, company_name FROM db_one.db_one_cars;

ALTER TABLE db_two_cars ENABLE KEYS;

db_one_carsdb_two_cars表都是InnoDB表,并且具有相同的结构,car_id用作主键company_name用作多列键customer用作多列键

我希望加快如此大量的数据导入速度,并且还希望在导入数据后能够良好的性能查询表。

我的问题:

  1. 是否需要在 SQL 语句末尾添加OPTIMIZE TABLE db_two_cars?为什么? (它会提高性能吗?我只是插入数据)
  2. 我需要使用ALTER TABLE db_two_cars PACK_KEYS = 0 吗?为什么? (会提高性能吗)
  3. 我还可以采取哪些措施来提高速度和 future 的查询性能?

P.S.我所说的性能包括数据导入的速度以及 future 数据查询的良好性能

最佳答案

要改进此功能,请将数据导出到 csv 文件

并使用以下命令将此文件加载到新表中:

load data infile

另一个加快速度的技巧你可以看看这个answer

关于mysql - 性能问题: Data importing in database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com