1
0
mirror of https://github.com/kedarvj/mysqldumpsplitter.git synced 2025-08-22 16:13:46 +02:00

Adding Disable-Enable Keys for restore speed

Disabling index while loading sql dump will improve the speed. Added Disable and Enable Keys statements.
This commit is contained in:
Kedar
2019-06-17 22:18:41 +05:30
committed by GitHub
parent 4792da5b7d
commit fdb080e3ed

View File

@@ -30,6 +30,9 @@
# ... Bug fixing in describe functionality
# ... Preserving time_zone & charset env settings in extracted sqls.
# Credit: @PeterTheDBA helped understanding the possible issues with environment variable settings included in first 17 lines of mysqldump.
# Ver. 6.2: Jun, 2019
# ... Added Disable/Enable keys for faster dump load
# ... Feature req: https://github.com/kedarvj/mysqldumpsplitter/issues/10
##
# ToDo: Work with straming input
@@ -242,10 +245,17 @@ dump_splitter()
# Include first 17 lines of standard mysqldump to preserve time_zone and charset.
include_dump_info $MATCH_STR
# Include Disable Keys for faster datadump load
echo "alter table $MATCH_STR disable keys;" >> $OUTPUT_DIR/$tablename.$EXT
#Loop for each tablename found in provided dumpfile
echo "Extracting $MATCH_STR."
#Extract table specific dump to tablename.sql
$DECOMPRESSION $SOURCE | sed -n "/^-- Table structure for table \`$MATCH_STR\`/,/^-- Table structure for table/p" | $COMPRESSION >> $OUTPUT_DIR/$MATCH_STR.$EXT
# Include Enable keys
echo "alter table $MATCH_STR enable keys;" >> $OUTPUT_DIR/$tablename.$EXT
echo "${txtbld} Table $MATCH_STR extracted from $SOURCE at $OUTPUT_DIR${txtrst}"
;;
@@ -271,8 +281,15 @@ dump_splitter()
# Include first 17 lines of standard mysqldump to preserve time_zone and charset.
include_dump_info $tablename
# Include Disable Keys for faster datadump load
echo "alter table $tablename disable keys;" >> $OUTPUT_DIR/$tablename.$EXT
#Extract table specific dump to tablename.sql
$DECOMPRESSION $SOURCE | sed -n "/^-- Table structure for table \`$tablename\`/,/^-- Table structure for table/p" | $COMPRESSION >> $OUTPUT_DIR/$tablename.$EXT
# Include Enable keys
echo "alter table $tablename enable keys;" >> $OUTPUT_DIR/$tablename.$EXT
TABLE_COUNT=$((TABLE_COUNT+1))
echo "${txtbld}Table $tablename extracted from $DUMP_FILE at $OUTPUT_DIR/$tablename.$EXT${txtrst}"
done;
@@ -286,9 +303,16 @@ dump_splitter()
# Include first 17 lines of standard mysqldump to preserve time_zone and charset.
include_dump_info $tablename
# Include Disable Keys for faster datadump load
echo "alter table $tablename disable keys;" >> $OUTPUT_DIR/$tablename.$EXT
echo "Extracting $tablename..."
#Extract table specific dump to tablename.sql
$DECOMPRESSION $SOURCE | sed -n "/^-- Table structure for table \`$tablename\`/,/^-- Table structure for table/p" | $COMPRESSION >> $OUTPUT_DIR/$tablename.$EXT
# Include Enable keys
echo "alter table $tablename enable keys;" >> $OUTPUT_DIR/$tablename.$EXT
echo "${txtbld}Table $tablename extracted from $DUMP_FILE at $OUTPUT_DIR/$tablename.$EXT${txtrst}"
TABLE_COUNT=$((TABLE_COUNT+1))
done;
@@ -310,11 +334,17 @@ dump_splitter()
#Extract table specific dump to tablename.sql
# Include first 17 lines of standard mysqldump to preserve time_zone and charset.
include_dump_info $tablename
# Include Disable Keys for faster datadump load
echo "alter table $tablename disable keys;" >> $OUTPUT_DIR/$tablename.$EXT
$DECOMPRESSION $SOURCE | sed -n "/^-- Current Database: \`$MATCH_DB\`/,/^-- Current Database: /p" | sed -n "/^-- Table structure for table \`$tablename\`/,/^-- Table structure for table/p" | $COMPRESSION >> $OUTPUT_DIR/$tablename.$EXT
echo "${txtbld}Table $tablename extracted from $DUMP_FILE at $OUTPUT_DIR/$tablename.$EXT${txtrst}"
TABLE_COUNT=$((TABLE_COUNT+1))
done;
# Include Enable keys
echo "alter table $tablename enable keys;" >> $OUTPUT_DIR/$tablename.$EXT
echo "${txtbld}Total $TABLE_COUNT tables extracted from $MATCH_DB.${txtrst}"
;;