タグ

チューニングとDBに関するtakami_hirokiのブックマーク (6)

  • 基礎から理解するデータベースのしくみ(9)

    図10●レコード・クラスタリングの仕組み。ハッシュ値にしたがって,empとemp_histの二つのテーブルで同じenoを持つレコードを一つのテーブルに格納している RDBMSが備えるさまざまな高速化手法 RDBMSは,ここまで説明してきた基的なデータの格納のしかたや操作方法に加え,高速化のための手法をいろいろ用意しています。Part2の最後に,これらの手法をざっと紹介しておきましょう。 ●ハッシュ・インデックス キャッシュ・バッファのサイズや使われ方にもよりますが,一般にBツリー・インデックスを使って巨大なデータベースにアクセスする際には,ルート・ノードだけがキャッシュ・バッファにあるのが普通です。そのため,レコードにたどりつくまでにブランチ・ノード,リーフ・ノード,データベース・レコードと何回もディスクにアクセスしなければなりません。これを1回のアクセスでレコードを取得できるようにしよ

    基礎から理解するデータベースのしくみ(9)
    takami_hiroki
    takami_hiroki 2011/02/23
    ビットマップ・インデックスは,キーの取り得る値の一つひとつに対してビットマップ(ビット列)を用意します。
  • [ThinkIT] 第1回:定量的な情報収集のススメ (1/3)

    MySQLサーバに限らず、大量のアクセスを処理するデータベースやアプリケーションサーバ群に対して、それぞれの環境に合わせたチューニングを行うことは企業システムにおいて必須の項目です。しかし「チューニングすべきパラメータとその最適値をどのように決定すればよいのか」、また「実際にチューニングを施すことによってどの程度効果があったのか」を把握することは意外に難しいものです。 ですが、敢えていえば答えは明瞭で、「定量的な情報収集と分析」の他にないでしょう。あらかじめ情報を収集しておけば、チューニング前後でのデータを比較することによってどのような変化が起きたのかを知ることができます。 連載では、まずはMySQLサーバにおいて収集すべき情報を提示し、その後、それらを利用した基的なパラメータについてのチューニング方針を紹介します。 また、今回はOSにCentOS 5.0、データベースにMySQL 5

  • 【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro

    SlowLogの設定 環境設定ファイル(Windowsではmy.ini,Linuxではmy.cnf)に次のような設定を加えるとSlowLogが有効になる。 log-slow-queries SlowLogの有効化(ログファイル名を指定可能) long-query-time=2 SlowLogに記録する処理時間の上限 log-long-format インデックスを使用しないSQL文の記録 long-query-timeパラメータは,SlowLogに記録するしきい値を秒単位で設定する。この場合には,2秒超える処理時間を費やしたSQL文を記録する。また,log-long-formatを指定すると,インデックスを使用しないSQL文もSlowLogに記録する。 SlowLogの確認 SlowLogが動作しているかどうかは,次のコマンドで確認できる。log_slow_queriesがONであれば有効と

    【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro
  • VACUUM FULLとREINDEXとファイルサイズ — NPO法人 日本PostgreSQLユーザ会

    by 柴田 淳 — posted at 2006-02-22 08:03 last modified 2006-12-04 12:41 「アレどうなったんですか?」といろんな人にツッコミを受け続けて早2ヶ月(くらい?)。帰ってきた「水曜日シリーズ」です。 記念すべき復帰第一弾は「VACUUMとREINDEX」です(第一弾だけで終わりませんように・・・)。 ファイルサイズは、データベースのパフォーマンスに大きな影響を与えます。ファイルのサイズを可能な限り抑えることが、パフォーマンスの向上に役立ちます。そこで今回は、VACUUMとファイルサイズ、そしてREINDEXとの関係を見ていきたいと思います。 まず、pgbenchで最初にデータを作成してみます(いきなりですが)。 % pgbench -i pgbench creating tables... 10000 tuples don

    takami_hiroki
    takami_hiroki 2009/09/17
    インデックスは、その仕組み上、VACUUM FULLをしても不要領域を開放する、つまりファイルサイズを小さくすることはできません。ファイルサイズを小さくしたい場合には、REINDEXを実行する必要があります。
  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
    takami_hiroki
    takami_hiroki 2009/09/08
    サブクエリは前もって実行されて結果がテンポラリテーブルに格納される。テンポラリテーブルはMEMORYストレージエンジンを利用するが、テーブルのサイズがmax_heap_table_sizeまたはtmp_table_sizeを超えるとMyISAMに変換される。
  • [PostgreSQLウォッチ]第26回 ボトルネックをビジュアルに分析するログ解析ツールpgFouine

    PostgreSQLでは,postgresql.confを設定することにより,SQL文やその実行時間などの情報をログファイルに記録できる。ここではこのログのことを「SQLログ」と呼ぶことにしよう。単に「ログ」というと,トランザクションログ(WALログ)と混同する恐れがあるからである。 SQLログには以下のような記録が残る。 LOG: statement: INSERT INTO history (tid,bid,aid,delta,mtime) VALUES (4,1,25891,8417,CURRENT_TIMESTAMP); LOG: duration: 72.786 ms

    [PostgreSQLウォッチ]第26回 ボトルネックをビジュアルに分析するログ解析ツールpgFouine
    takami_hiroki
    takami_hiroki 2009/02/02
    OracleのStatsPackに近いイメージのツール
  • 1