php迁移百万数据 mysql亿级数据迁移

如何向数据库快速的写入百万条数据

如何向数据库快速的写入百万条数据

创新互联建站从2013年创立,先为徐闻等服务建站,徐闻等地企业,进行企业商务咨询服务。为徐闻企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

现在我的处理方式是读取原数据库表的所有数据,大概有一百万条吧,然后放到一个数组里面,循环向目标数据库写数据(两个数据库之间的数据迁移,表结构不同,我是写的php脚本来查询导入的),一开始速度还可以,但是现在几乎一秒钟一条了

PHP导出100万数据到excel

php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。

所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。正好PHP提供了fputcsv函数可以将数据写入到csv文件中。

这样我们就可以使用PHP对数据进行分页查询,再写入到csv文件中。

如何在PHP项目中使用phinx进行数据迁移和建表

建表

phinx\bin\phinx.bat migrate -e production

建设 phinx.yml文件

paths:

migrations: %%PHINX_CONFIG_DIR%%\database\migrations

seeds: %%PHINX_CONFIG_DIR%%\database\seeds

environments:

default_migration_table: phinxlog

default_database: development

production:

adapter: mysql

host: localhost

name: jitamin2

user: root

pass: ‘‘

port: 3306

charset: utf8

development:

adapter: mysql

host: localhost

name: development_db

user: root

pass: ‘‘

port: 3306

charset: utf8

testing:

adapter: mysql

host: localhost

name: testing_db

user: root

pass: ‘‘

port: 3306

charset: utf8

数据迁移命令如下:

phinx\bin\phinx.bat seed:run -e production

%%PHINX_CONFIG_DIR%%\database\seeds下面的文件示例CreateGroupsTable.php如下:

?php

/*

* This file is part of Jitamin.

*

* Copyright (C) Jitamin Team

*

* For the full copyright and license information, please view the LICENSE

* file that was distributed with this source code.

*/

use Jitamin\Foundation\Security\Role;

use Phinx\Seed\AbstractSeed;

class UserSeeder extends AbstractSeed

{

/**

* Run Method.

*/

public function run()

{

$data = [

[

‘username‘ = ‘admin‘,

‘password‘ = bcrypt(‘admin‘),

‘email‘ = ‘admin@admin.com‘,

‘role‘ = Role::APP_ADMIN,

],

];

$users = $this-table(‘users‘);

$users-insert($data)

-save();

}

}


当前标题:php迁移百万数据 mysql亿级数据迁移
分享地址:http://pwwzsj.com/article/hgpoos.html