Datenbanken - Einträge für Oktober 2010

  • Oktober, 2010
  • Benchmarking Mysql vs Mariadb

    Wie jüngst angekündigt hier eine Vergleichstest zwischen Mysql und Mariadb.

    Allerdings wurden hier nur die aktuell Verfügbaren Stabe Versionen getestet. Eine Test Mysql 5.5 gegen MariaDB 5.2 steht noch aus.

    Genutzt wurden sehr simple Tests wie Sie mit sql-bench verfügbar waren. 

    Getestet wurde auf folgenden Systemen:

    System 1: 

    CPU:model name : Quad-Core AMD Opteron(tm) Processor 1389

    RAM 8GB DDR2

    SSD HDD 149GB.

    System 2:

    CPU: Intel(R) Core(TM) i7 CPU         975  @ 3.33GHz 

    RAM 12 GB DDR2

    3* SATA 1 TB

    OS Opensuse 11.3

    System 1:

    Mysql 5.1.46 (der opensuse Distribution)

    Benchmark DBD suite: 2.15
    Date of test:        2010-10-24 15:08:37
    Running tests on:    Linux 2.6.34.7-0.4-desktop x86_64
    Arguments:           
    Comments:            
    Limits from:         
    Server version:      MySQL 5.1.46 log
    Optimization:        None
    Hardware:            

    alter-table: Total time:  6 wallclock secs ( 0.04 usr  0.02 sys +  0.00 cusr  0.00 csys =  0.06 CPU)
    ATIS: Total time:  3 wallclock secs ( 2.28 usr  0.11 sys +  0.00 cusr  0.00 csys =  2.39 CPU)
    big-tables: Total time:  4 wallclock secs ( 1.39 usr  0.22 sys +  0.00 cusr  0.00 csys =  1.61 CPU)
    connect: Total time: 38 wallclock secs (11.49 usr  5.73 sys +  0.00 cusr  0.00 csys = 17.22 CPU)
    create: Total time: 111 wallclock secs ( 4.74 usr  2.14 sys +  0.00 cusr  0.00 csys =  6.88 CPU)
    insert: Total time: 331 wallclock secs (123.08 usr 17.68 sys +  0.00 cusr  0.00 csys = 140.76 CPU)
    select: Total time: 38 wallclock secs (13.72 usr  1.45 sys +  0.00 cusr  0.00 csys = 15.17 CPU)
    transactions: Test skipped because the database doesn't support transactions
    wisconsin: Total time:  2 wallclock secs ( 1.09 usr  0.22 sys +  0.00 cusr  0.00 csys =  1.31 CPU)

    All 9 test executed successfully

    Totals per operation:
    Operation             seconds     usr     sys     cpu   tests
    alter_table_add                        3.00    0.02    0.00    0.02     100 
    alter_table_drop                       2.00    0.01    0.01    0.02      91 
    connect                                3.00    1.57    0.36    1.93   10000 
    connect+select_1_row                   4.00    1.65    0.43    2.08   10000 
    connect+select_simple                  3.00    1.73    0.40    2.13   10000 
    count                                  3.00    0.03    0.00    0.03     100 
    count_distinct                         1.00    0.05    0.01    0.06    1000 
    count_distinct_2                       0.00    0.05    0.00    0.05    1000 
    count_distinct_big                    18.00    2.18    0.01    2.19     120 
    count_distinct_group                   0.00    0.27    0.01    0.28    1000 
    count_distinct_group_on_key            0.00    0.06    0.01    0.07    1000 
    count_distinct_group_on_key_parts      0.00    0.28    0.00    0.28    1000 
    count_distinct_key_prefix              0.00    0.06    0.00    0.06    1000 
    count_group_on_key_parts               0.00    0.26    0.01    0.27    1000 
    count_on_key                           7.00    2.19    0.41    2.60   50100 
    create+drop                           37.00    1.38    0.61    1.99   10000 
    create_MANY_tables                    24.00    1.09    0.46    1.55   10000 
    create_index                           0.00    0.00    0.00    0.00       8 
    create_key+drop                       42.00    1.72    0.71    2.43   10000 
    create_table                           0.00    0.00    0.00    0.00      31 
    delete_all_many_keys                  19.00    0.02    0.00    0.02       1 
    delete_big                             0.00    0.00    0.00    0.00       1 
    delete_big_many_keys                  19.00    0.02    0.00    0.02     128 
    delete_key                             1.00    0.08    0.08    0.16   10000 
    delete_range                           1.00    0.00    0.00    0.00      12 
    drop_index                             1.00    0.00    0.00    0.00       8 
    drop_table                             0.00    0.00    0.00    0.00      28 
    drop_table_when_MANY_tables            5.00    0.29    0.21    0.50   10000 
    insert                                16.00    2.71    1.90    4.61  350768 
    insert_duplicates                      4.00    0.77    0.74    1.51  100000 
    insert_key                            30.00    4.62    1.52    6.14  100000 
    insert_many_fields                     2.00    0.15    0.06    0.21    2000 
    insert_select_1_key                    1.00    0.00    0.00    0.00       1 
    insert_select_2_keys                   1.00    0.00    0.00    0.00       1 
    min_max                                1.00    0.02    0.00    0.02      60 
    min_max_on_key                         6.00    3.57    0.60    4.17   85000 
    multiple_value_insert                  1.00    0.13    0.00    0.13  100000 
    once_prepared_select                   8.00    1.81    0.69    2.50  100000 
    order_by_big                           7.00    6.20    0.07    6.27      10 
    order_by_big_key                       7.00    6.26    0.11    6.37      10 
    order_by_big_key2                      6.00    6.15    0.07    6.22      10 
    order_by_big_key_desc                  8.00    6.33    0.11    6.44      10 
    order_by_big_key_diff                  8.00    6.18    0.07    6.25      10 
    order_by_big_key_prefix                7.00    6.19    0.07    6.26      10 
    order_by_key2_diff                     1.00    0.56    0.01    0.57     500 
    order_by_key_prefix                    0.00    0.29    0.01    0.30     500 
    order_by_range                         1.00    0.29    0.01    0.30     500 
    outer_join                             1.00    0.01    0.00    0.01      10 
    outer_join_found                       0.00    0.00    0.00    0.00      10 
    outer_join_not_found                   1.00    0.00    0.00    0.00     500 
    outer_join_on_key                      1.00    0.00    0.00    0.00      10 
    prepared_select                       11.00    4.21    0.70    4.91  100000 
    select_1_row                           5.00    1.07    0.72    1.79  100000 
    select_1_row_cache                     3.00    0.76    0.72    1.48  100000 
    select_2_rows                          6.00    1.14    0.81    1.95  100000 
    select_big                             7.00    6.19    0.09    6.28      80 
    select_big_str                         2.00    0.97    0.35    1.32   10000 
    select_cache                           0.00    0.46    0.02    0.48   10000 
    select_cache2                         22.00    2.27    0.39    2.66   10000 
    select_column+column                   6.00    0.99    0.71    1.70  100000 
    select_diff_key                        0.00    0.03    0.00    0.03     500 
    select_distinct                        1.00    0.43    0.01    0.44     800 
    select_group                           1.00    0.30    0.02    0.32    2911 
    select_group_when_MANY_tables          3.00    0.26    0.15    0.41   10000 
    select_join                            0.00    0.13    0.00    0.13     100 
    select_key                            20.00    9.32    1.40   10.72  200000 
    select_key2                           21.00    9.26    1.47   10.73  200000 
    select_key2_return_key                20.00    9.01    1.34   10.35  200000 
    select_key2_return_prim               20.00    9.02    1.45   10.47  200000 
    select_key_prefix                     19.00    9.25    1.41   10.66  200000 
    select_key_prefix_join                 1.00    1.16    0.02    1.18     100 
    select_key_return_key                 20.00    9.17    1.36   10.53  200000 
    select_many_fields                     2.00    1.23    0.16    1.39    2000 
    select_range                           3.00    2.54    0.03    2.57     410 
    select_range_key2                      1.00    1.02    0.14    1.16   25010 
    select_range_prefix                    2.00    1.05    0.10    1.15   25010 
    select_simple                          3.00    1.00    0.44    1.44  100000 
    select_simple_cache                    2.00    0.60    0.79    1.39  100000 
    select_simple_join                     0.00    0.15    0.01    0.16     500 
    update_big                             4.00    0.00    0.00    0.00      10 
    update_of_key                          4.00    0.50    0.36    0.86   50000 
    update_of_key_big                      3.00    0.03    0.02    0.05     501 
    update_of_primary_key_many_keys        4.00    0.01    0.01    0.02     256 
    update_with_key                       15.00    2.10    1.95    4.05  300000 
    update_with_key_prefix                 5.00    1.41    0.56    1.97  100000 
    wisc_benchmark                         1.00    0.87    0.03    0.90     114 
    TOTALS                               548.00  155.16   27.51  182.67 3425950  

    Mehr lesen

  • Statistikdaten mit select count(*) so quält man eine DB

    Wer kennt das nicht, eine Anforderung im Projekt, dass der aktuelle Stand (Anzahl an Beiträgen, Besuche etc.) auf der Oberfläche angezeigt werden soll. Häufig realisiert man dies mit einer select count(*) from .... Anweisung.

    Schliesslich will man der DB nicht zumuten auch noch Statistik Daten zusätzlich zu pflegen und mit einem "Besuch" auf einer Webseiten zusätzliche writes zu erzeugen. Das belastet eine Datenbank doch sicherlich noch viel mehr ......

    Erstmal sollte man festhalten, dass Statistikdaten eigentlich nicht direkt in die DB durch gereicht werden sollten. Dafür reicht ein einfacher Service im Hintergrund, der diese Daten im RAM hält und regelmässig mit der DB abgleicht. Dies sollte man immer berücksichtigen. Denn die Folgen sind u.U. fatal.

    Mehr lesen

  • Mysql Tabellenoptimierung

    Auch Mysql will regelmässig optimiert werden. Insbesondere bei Tabellen mit vielen Löschtransaktionen wachsen die Überhänge gerne an.

    Faul wie ich nunmal bin, wird auch dieses regelmässig automatisiert angegenangen. Insbesondere auf Hostingumgebungen verliert man schnell den Überblick welche Tabellen man mal wieder optimieren sollte.

    Mehr lesen

  • Oracle Invalide Objekte finden und compilieren.

    Bei diversen Änderungen von Tabellendefinitionen, Funktionen etc. werden teilweise abhängige Objekte weitere Funktionen, Views usw. invalid.

    Die Frage ist dann immer: "Wie überwacht man dieses und wie automatisiert man es, dass die Objekte wieder valide werden?"

    Mehr lesen

Seite 1 von 1, insgesamt 4 Einträge