Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 4.39 KB | None | 0 0
  1. ======================== DBIx::Custom ===============================
  2.  my $result = $self->dbh->select( ['sap_exists','order_exists','sale_exists','sales_more'],
  3.                                    table => 'sc_sap_import',
  4.                                    append => 'order by id desc limit 0, 1'
  5.                                   );
  6.  
  7.   $funnel_data = $result->one;
  8.  
  9.  
  10.   my $result = $self->dbh->select( ['DATE_FORMAT(date, \'%d.%m.%Y\') as dates','visits'],
  11.                                    table => 'sc_metrika_import',
  12.                                    append => 'ORDER BY date DESC ' . $limit
  13.                                   )->all;
  14.  
  15.  my $result = $self->dbh->execute("SELECT a.id, a.date_add, a.date_event, a.comment, b.title as status_name,
  16.                                    c.title as event_name, d.title as client_name
  17.                                    FROM sc_history a INNER JOIN sc_status b ON a.status = b.id
  18.                                    INNER JOIN sc_event_type c ON a.event_type = c.id
  19.                                    INNER JOIN sc_clients d ON a.client_id = d.id
  20.                                    WHERE a.user_id = :user_id AND d.is_delete = :not_delete ORDER BY a.date_event DESC
  21.                                    LIMIT :start_page, :per_page ",
  22.                                     {'user_id' => $user->{id}, 'not_delete' => 'N', 'start_page' => $per_page*$page_id, 'per_page' => $per_page });
  23.  
  24.   return $result->all;  
  25.  
  26. == Update ==
  27.          $self->dbh->update( {
  28.                               title  =>  $params->{title},
  29.                               title2 =>  $params->{title2},  
  30.                               },
  31.                               table => 'sc_event_type',
  32.                               where => {id => $params->{id}}
  33.                               )
  34.  
  35. == delete ==
  36. my $result = $self->dbh->select(qw[id], table => 'sc_history', where => {event_type => $id });
  37.  
  38. =========================== DBIx::Struct =================================
  39. my $result = all_rows([
  40.                         "mc_news a" =>
  41.                         -join     => 'mc_users b',
  42.                         -join     => "mc_categories c",
  43.                         -columns => ['a.*', 'b.fullname as author_name', 'b.profile_foto', 'c.title as category_name' ]
  44.                         ],
  45.                         -where    => { 'a.date_pub' => {'<=', \"now()" }, 'a.publish' => 1 },
  46.                         # automaticly join - based on forein keys
  47.                         # -on       => "mc_news.author = mc_users.id",
  48.                         -order_by => "a.id DESC",
  49.                         -limit    => $per_page,
  50.                         -offset   => $offset*$per_page,
  51.                         sub { +{ delay => $delay += 90, %{$_->data} } }
  52.   );
  53.  
  54. ====
  55. for_rows( [ mc_news => -distinct => ['main_foto_url'] ],
  56.                         -limit    => $self->conf->{per_page},
  57.                         -offset   => $offset*$self->conf->{per_page},
  58.                         # проверка на undef и наличие файла в FS
  59.                         sub { push( @images, $_->TO_JSON ) if ( defined $_->main_foto_url and -f $prefix . $_->main_foto_url ); ); 1 } );
  60. == Update ==
  61. my $row = one_row( "mc_news", { id => $params->{id} } );
  62. $row->$_($params->{$_}) for (keys %$params) ;
  63. $row->update;
  64. == delete ==
  65. my $row = one_row( 'mc_news', { id => $id } );
  66. $row->delete();
  67. ====
  68. ============================ Benchmarks ============================
  69. __DATA__
  70. Benchmark: running Custom, DBI, Struct for at least 10 CPU seconds...
  71.     Custom: 12 wallclock secs ( 9.73 usr +  0.86 sys = 10.59 CPU) @ 833.87/s (n=8834)
  72.        DBI: 12 wallclock secs ( 7.34 usr +  2.66 sys = 10.00 CPU) @ 8505.95/s (n=85068)
  73.     Struct: 10 wallclock secs ( 9.08 usr +  0.94 sys = 10.02 CPU) @ 2435.05/s (n=24387)
  74.          Rate Custom Struct    DBI
  75. Custom  834/s     --   -66%   -90%
  76. Struct 2435/s   192%     --   -71%
  77. DBI    8506/s   920%   249%     --
  78. Benchmark: running Custom, DBI, Struct for at least 10 CPU seconds...
  79.     Custom: 10 wallclock secs ( 9.23 usr +  0.83 sys = 10.06 CPU) @ 844.96/s (n=8502)
  80.        DBI: 12 wallclock secs ( 7.50 usr +  2.70 sys = 10.20 CPU) @ 8794.96/s (n=89735)
  81.     Struct: 11 wallclock secs ( 9.36 usr +  1.27 sys = 10.62 CPU) @ 2489.36/s (n=26447)
  82.          Rate Custom Struct    DBI
  83. Custom  845/s     --   -66%   -90%
  84. Struct 2489/s   195%     --   -72%
  85. DBI    8795/s   941%   253%     --
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement