以下內容非常快,需要6分鐘以上的1000萬行,但示例表中的字段和索參數量少於生產表,因此如果您決定使用它,則需要花費更長的時間!
注意:該示例是在windows作業系統上完成的,因此您必須更改路徑名和\ r \ n以符合linux標準!
這裡是我現有的表(innodb引擎ofc):
drop table if exists customers;
create table customers
customer_id int unsigned not null auto_increment primary key,
name varchar(255) not null,
country_id tinyint unsigned not null default 0,
key (country_id)
engine=innodb;
mysql> select count(*) from customers;
| count(*) |
| 10000000 |
1 row in set (1.78 sec)
建立,其中包括您所需要的新的字段的表的新版本:
drop table if exists customers_new;
create table customers_new
customer_id int unsigned not null auto_increment primary key,
name varchar(255) not null,
country_id tinyint unsigned not null default 0,
split tinyint not null default 0,
key (country_id)
engine=innodb;
出口資料從舊客戶表中按pk訂單轉換為csv格式:
select * into outfile 'c:\\customers.dat'
fields terminated by '|' optionally enclosed by '"'
lines terminated by '\r\n'
from customers order by customer_id;
query ok, 10000000 rows affected (17.39 sec)
負荷customer.dat檔案到新的客戶表:
truncate table customers_new;
set autocommit = 0;
load data infile 'c:\\customers.dat'
into table customers_new
fields terminated by '|' optionally enclosed by '"'
lines terminated by '\r\n'
customer_id,
name,
country_id,
@dummy -- represents the new split field
setname = nullif(name,'');
commit;
query ok, 10000000 rows affected (6 min 0.14 sec)
檢查,看是否一切正常
select * from customers_new order by customer_id desc limit 1;
| customer_id | name | country_id | split |
| 10000000 | customer 10000000 | 218 | 0 |
1 row in set (0.00 sec)
insert into customers_new (name, country_id, split) values ('f00',1,1);
query ok, 1 row affected (0.07 sec)
select * from customers_new order by customer_id desc limit 1;
| customer_id | name | country_id | split |
| 10000001 | f00 | 1 | 1 |
1 row in set (0.00 sec)
刪除舊表,並重命名新:
drop table customers;
query ok, 0 rows affected (0.18 sec)
rename table customers_new to customers;
query ok, 0 rows affected (0.05 sec)
select * from customers order by customer_id desc limit 1;
| customer_id | name | country_id | split |
| 10000001 | f00 | 1 | 1 |
1 row in set (0.00 sec)
這就是所有人!
mysql遠端連線緩慢
最近專案使用到mysql,在linux上安裝rpm格式的mysql,前幾天訪問正常,但今天突然發現資料庫訪問緩慢,在網上搜尋過後,發現可以在 etc my.cnf檔案中新增 skip name resolve 來解決。但我在 etc目錄下無法找到my.cnf檔案,再經過搜尋,發現解決方案 用rpm包...
非常緩慢相
我想從乙個二維向量找到獨特的行和其相應的指標。我使用的排序和獨特的命令從stl,下面我用在for迴圈中找到原始陣列的唯一指標命令列。然而,該 是非常緩慢相比,matlab。我的陣列的大小是相當大的50000 by 3周圍。有什麼辦法?你好,每個人!我是乙個 來自中國的 大學生。我很高興見到大家。我m...
緩慢變化維
一.什麼是緩慢變化維?緩慢變化維 slowly changing dimensions,scd 它的提出是因為在現實世界中,維度的屬性並不是靜態的,它會隨著時間的流失發生緩慢的變化。這種隨時間發生變化的維度,一般被稱為緩慢變化維 並且把處理維度表的歷史變化資訊的問題稱為處理緩慢變化維的問題,有時也簡...