I bet a bunch of the Pg code could be improved. I looked through it and spotted a couple of examples of less than efficient coding that make me think that the Pg code could be improved somewhat without resorting to C. OTOH, MySQL appears to have a better structure to its client code and XS. For instance the MySQL do() statement does everythign in C, where the Pg code does an awful lot of method calls. Assuming each subroutine call has a measurable overhead to it, its clear that the ~300100 calls that occur under MySQL are going to be more efficient that the ~4.2 million calls that DBD::Pg does for the same thing. And in the latter case the calls are primarily method lookups which are even slower than subroutine calls.

Pruning the call tree graph involved in a do() statement would be the first place id look. Getting rid of the dependency on DBI::st would also seem prudent.

---
$world=~s/war/peace/g


In reply to Re: Why is DBD::Pg slower than DBD::mysql? by demerphq
in thread Why is DBD::Pg slower than DBD::mysql? by danb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.