Performance under many events?

This topic contains 5 replies, has 2 voices, and was last updated by  Stephen Harris 9 years, 3 months ago.

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
  • #6007 Reply

    I’m seriously considering this plug-in for listing tons of local events and venues. At any given time I might have 400 venues and maybe 200 events. Is that asking for trouble? I’ve heard of plug-ins buckling under the strain of many posts/pages, etc, and I really don’t want to invest the time in creating the data only to see it collapse. Thanks.

    #6008 Reply

    Hi Jason,

    I’ll be honest, I’ve never attempted it with that many events – occurrences, yes (though not that order of magnitude of venues). That said I’m confident it will perform well:

    The database table storing the event dates is designed to be as efficient as possible, with date and time columns indexed. This in theory should ensure that it performs better than an event plug-in which uses post meta (which would scale terribly). On the user-end side, it caches as much as it can (calendar, widgets etc).

    The architecture of the plug-in has been (and continues to be) refined to improve performance – part of which has involved testing these improvements – but that doesn’t always translate to user experience (which will vary on sever and WordPress set-up).

    Really, the only thing for it is to test that many events on the free version first. Obviously manually entering events would be tedious – but you could create ‘random’ events:

    add_action( 'admin_init', 'jason_create_test_events' );
    function jason_create_test_events( ){
            $batch_size = 50;
             for( $i=0; $i < $batch_size; $i++ ){
                   $post_arr = array( 
                     'post_title' => 'Event - #'.$i,
                   $event_arr = array( 
                     'start' => //
                     'end' => //Fill with 'pseudo' random, but valid data
                   eo_insert_event( $post_arr, $event_arr );

    (See documentation).

    In that way you can create a lot of test events quickly (even ‘randomly’ choosing its schedule details – recurring, multi-day, etc – obviously ‘randomly’ taken from valid data sets – start dates before end dates etc).

    If I get the chance to test this myself I will (and maybe even publish some metrics)- but performance will vary from server to server and also your particular set-up.

    Stephen Harris
    #6076 Reply

    Thanks for the honest reply, and the code! I will just need to get this up on live hosting and experiment.

    I already have a lot of venues it would be nice to bulk import from CSV. I searched your site but did not see any posts about bulk importing venues and/or events. Is that possible?

    #6079 Reply

    Nope, just ICAL. Where are you importing events from?

    Stephen Harris
    #6081 Reply

    My venues are in an Excel spreadsheet, so could be exported to CSV and easily manipulated and restructured. For me importing the venues is more important than events because the events come and go but the venues stay.

    #6087 Reply

    Although there is no CSV-handling in the plug-in, its not to difficult to implement. Assuming you have parsed the CSV into an array, you can use eo_insert_venue() to create the venue, and even use eo_get_venue_by() to ensure that you’re not importing a venue that already exists.

    If implementing that is something you’d like help with feel free to drop me an e-mail and we can discuss it.

    Stephen Harris
Viewing 6 posts - 1 through 6 (of 6 total)
Reply To: Performance under many events?
Your information:

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see

<a href="" title="" rel=""> <blockquote cite=""> <code> <pre> <em> <strong> <del datetime=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width=""> <p style=""> <span style="">