This is a class that can split BIG SQL file or string as iterator so that can help us save memory when importing SQL to database.
Composer version see here: https://github.com/asika32764/sql-splitter
$it = SqlSplitter::splitFromFile(__DIR__ . '/path/to/db.sql');
// Loop iterator
foreach ($it as $query) {
if (trim($query) !== '') {
$db->prepare($query)->execute();
}
}
// Or just convert to array
$queries = iterator_to_array($it);
// Available methods
SqlSplitter::splitSqlString('...');
SqlSplitter::splitFromFile('path/to/fil.sql');
SqlSplitter::splitFromPsr7Stream(new Stream('php://memory'));
SqlSplitter::splitFromStream(fopen('s3://...', 'r'));