容量の大きいSQLファイルを分割する方法

容量の大きいSQLを扱うことがあり苦戦したので、対応した内容をまとめます。

対応した内容は、SQLファイルを分割し、個別にインポートする方法です。

Macの場合

split コマンドを使用して大きなファイルを小さなファイルに分割することができます。以下に例を示します。

$ split -l 5000 your_large_file.sql small_file

このコマンドは、your_large_file.sqlを5000行ごとに分割し、small_fileaasmall_fileabsmall_fileac…という名前の小さなファイルを生成します。

SQLで書き出したい場合

$ for file in small_file*; do mv "$file" "${file}.sql"; done

上記のコマンドで拡張子にsqlを一括で付けます。

Windowsの場合

PowerShellを使用してファイルを分割することができます。以下に例を示します。

PowerShell
$sr = New-Object System.IO.StreamReader('your_large_file.sql')
$count = 1
$lines = @()
while ($sr.Peek() -ge 0) {
    $lines += $sr.ReadLine()
    if ($lines.Count -eq 5000) {
        $lines | Out-File "small_file$count.sql"
        $lines = @()
        $count++
    }
}
if ($lines) {
    $lines | Out-File "small_file$count.sql"
}
$sr.Close()

このスクリプトは、your_large_file.sqlを5000行ごとに分割し、small_file1.sqlsmall_file2.sqlsmall_file3.sql…という名前の小さなファイルを生成します。

AIへの質問や指示のプロンプト共有コミュニティ Promptolkクリエイターのための情報共有コミュニティ Utan