「実際のチューニングは明日回し」などとして長々と引っ張りつつ、結局は、ぜんぜん違う結論に至っていたりする。 まず、オイラが使っているSSDというか、コンパクトフラッシュの性能を考察する。Linuxを動かしている都合上、Windows用のベンチマークアプリであるCrystalDiskMarkの結果を引用するのはおかしいのだが、同アプリはフラッシュメディアの性能を測る上で事実上の標準となっており、Web上から結果が入手しやすいから仕方ない。
よくMySQLはサブクエリが弱いと言われるが、これは本当だろうか?半分は本当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし
Pythonの文字列は、Java等と同様にImmutableであり、頻繁に文字列を操作する場合においては、気をつけないと思わぬパフォーマンスの低下を招きます。 代表的なケースとしては、文字列に新たな文字列をどんどん連結していくケース。 s = s + "新たな文字列1" s = s + "新たな文字列2" s = s + "新たな文字列3" . . . . . . とせずに、配列を使って、 L = [] L.append("新たな文字列1") L.append("新たな文字列2") L.append("新たな文字列3") . . . . . . s = ''.join(L) とするのが定石イディオムとされています(最初の例では、毎回新たな文字列が生成されるオーバーヘッドがあるとされる。参考:「Pythonクックブック」)。 これは本当に正しいのでしょうか。また、mutable文字列っぽいア
ちょっとキャッチ−なタイトルをつけてしまったが、今日は独断と偏見でMySQLを高速化する方法を10個紹介しよう。MySQLサーバをチューニングするときや初期導入する場合などに参考にしてもらいたい。 1. バッファを増やす、または減らす チューニングの基本中の基本であるが、適切なバッファサイズを設定することはパフォーマンスチューニングの要である。主なバッファは次の通り。 innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。 key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。 sort_buffer_
企業にとってオフィスデザインは重要な要素で、あらゆる部分に影響を及ぼします。適切なデザイン設計すれば、仕事効率をアップすることができます。 さらに家具を搬入するときも楽になるのでメリットは多いです。ただやみくもにデザインをしても、うまくいきません。また素材なども考慮しないといけないので、計画的にデザインを練る必要があります。 そこでどのようなデザインをすれば使いやすいオフィスになるのかを紹介しましょう。 オフィスデザインをすれば仕事効率をアップできます。例えば動線を確保することができるので、他のスタッフの通行の邪魔にならずスムーズな行き来をすることが可能です。 また家具を搬入するときも、すでに設置している家具の邪魔をせず置くことができるので便利です。オフィスデザインはやみくもにするのではなく、業態に合った設計をする必要があります。 例えば打ち合わせの多い会社なら、社員のデスクはつくらず自由
Windows XPの不要なファイルを削除してスリム化を実現。簡単な11種類の手法を紹介する。ディスク容量に制限のあるミニノートPCユーザー必読。 連載目次 Windows XPのダイエットが求められる背景 最近、「ネットブック」と呼ばれる安価で小型・軽量のノートPCが人気を集めている。こうした製品では、低価格な一方で、機能や性能が制限されていることが多い。例えば、プロセッサが性能に制限のあるネットブック向けのAtomであったり、ハードディスクの代わりに4Gbytesや8Gbytes程度のSSD(Solid State Drive)が採用されていたりする。プロセッサ性能については、Windows XPを利用する分には特に問題はないと思われるが、ストレージ容量の不足は問題になりやすい。そもそもWindows XPをセットアップしただけで2Gbytes以上の容量を必要とすることを考えると、その
Pythonの高速化 Pythonは非常に使い易い優れたスクリプト言語であるが、大きなプログラムになると やはり、スクリプト言語としての宿命か、処理速度が気になる。 ctypesモジュールはシェアドライブラリの関数をPythonから直接使用可能にするもので、 従来より高速化が容易になる。 2006年8月にバージョン1.0がリリースされ、Python2.5からは標準で組み込まれる。 スクリプト全体を高速化 Psycoは Just-In-Time(JIT) compiler方式で数倍から、運が良ければ数十倍高速になる 但し Psycoは64ビットマシンには対応していない、64ビットマシンには開発途上のPyPyがある 部分高速化 ループなど時間の掛かる部分にC言語をinlineで使用する方法 1:weave Scipyに含まれているモジュール 2:instant swigを利用する モジュ
MySQLのチューニングにおいて非常に重要となるメモリ(バッファ)関連のパラメータについて、 チューニングのポイント DSASのとあるDBサーバ(実メモリ4GB)の実際の設定値 をまとめてみます。 また、必要メモリの総量の計算や限界値を越えてないかチェックしてくれるスクリプトも紹介します。 是非、参考にしてみてください! まず最初に注意点を。 バッファには2つのタイプがあります。 グローバルバッファ スレッドバッファ グローバルバッファはmysqld全体でそのバッファが1つだけ確保されるもので、 これに対し、 スレッドバッファはスレッド(コネクション)ごとに確保されるものです。 チューニングの際にはグローバル/スレッドの違いを意識するようにしましょう。 なぜなら、スレッドバッファに多くのメモリを割り当てると、コネクションが増えたとたんにアッという間にメモリ不足になってしまうからです。 in
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く