The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

OP::Persistence::Bulk - Deferred fast bulk table writes

SYNOPSIS

  use OP qw| :all |;
  use OP::Persistence::Bulk;

  use YourApp::Example;

  #
  # Queue up a bunch of objects for save:
  #
  for ( ... ) {
    my $exa = YourApp::Example->new(...);

    #
    # Queue object in the currently active scratch file:
    #
    $exa->stash;
  }

  #
  # Write any deferred saves to the database with blazing speed:
  #
  YourApp::Example->flushStash;

DESCRIPTION

Experimental mix-in module to enable the saving of many objects to the database at once, using MySQL's LOAD FILE syntax, which is extremely fast.

Saving objects in this manner will bypass many application and db-level constraints, which can result in disasterous consequences if the objects contain garbage data. This is a very sharp knife.

BUGS

Using this mix-in with classes that have attributes possessing sqlValue insert/update overrides will probably not work as-is. Any necessary logic for handling insert/update value overrides may be defined in a class's _prestash method, which is called prior to stashing.

SEE ALSO

This file is part of OP.