回答:
大規模なSQLインポートに加えてオーバーヘッドドラッシュがどれだけの負荷になるかはわかりません。これは、小さなインポートとクエリにのみ使用しました。ドラッシュのオーバーヘッドを取り除く代替手段として、mysqlクライアントを試すことができます。
VMにPipe Viewerをインストールできる場合は、インポートを使用するコマンドの進行状況を表示できます。
pv mydb.sql | drush sql-cli
または、ドラッシュのオーバーヘッドなし
pv mydb.sql | mysql -u <DB_USER> -p<DB_PASS> <YOUR_DB>
バックアップと移行モジュールは、以下のような選択されたテーブルを、排除する機能があります:
除外するデフォルトのテーブル/データに関する問題には、移行しないテーブルの興味深いリストも含まれています(適切なものを選択してください)。
バックアッププロファイルを作成すると、モジュールはデフォルトで次のテーブルを設定して、問題#209647に従ってデータを除外します。
- キャッシュ
- cache_filter
- cache_calendar_ical
- cache_menu
- cache_page
- cache_views
- セッション
- search_dataset
- search_index
- search_keywords_log
- search_total
- 番犬
- アクセスログ
- devel_queries
- devel_times
データベースが小さいほどインポートが高速になるためdrush cc all
、drush watchdog delete all
これらを削除することがオプションの場合は、処理速度が大幅に向上します。
また、Shawn Connの答えを拡張するために、Drushのオーバーヘッドなしでパイプビューアを使用できます。drush sql-connect
代わりにを使用する場合は、Drushを使用してデータベース資格情報を検索できますdrush sql-cli
。表示$()
するmysql行を実行するために使用するだけdrush sql-connect
です。
pv mydb.sql | $(drush sql-connect)
drush sql-dump
SQLファイルのダンプに使用して、ダンプ時に大きなデータベースをトリミングすることをお勧めします。これにより、ダンプ時に特定のテーブルをスキップする追加オプション(キャッシュテーブルや移行テーブルなど)を指定できるという利点があります。
これは、コマンドラインで指定するか(参照:)、次のようにdrushrcファイルdrush help sql-dump
で構成できます。example.drushrc.php
$options['structure-tables']['common'] = array('cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog');
$options['skip-tables']['common'] = array('migration_*');
またはリモートを使用しているsql-sync
場合sql-dump
、またはリモート間で使用している場合のように、ホストごとに:
$aliases['global'] = array(
// These options will only be set if the alias is used with the specified command.
'command-specific' => array(
'sql-sync' => array(
'structure-tables-key' => 'common',
'skip-tables-key' => 'common',
'structure-tables' => array(
// You can add more tables which contain data to be ignored by the database dump
'common' => array('cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog'),
),
'skip-tables' => array(
'common' =>array('migration_*'),
),
),
'sql-dump' => array(
'ordered-dump' => FALSE,
'structure-tables-key' => 'common',
'skip-tables-key' => 'common',
),
), // end: command-specific
);
次に、次の方法でこの設定をホストにロードできます。
$aliases['stage'] = array(
// ...
) + $aliases['global'];
次に、次のようなことを試すことができます:
drush @source sql-dump | drush @self sql-cli
進行状況を監視するにはpv
、間にパイプビューア()を追加できます(など... | pv | ...
)。
以下も参照してください。