#snapshot
データベースメモ †
サンプルデータ †
最適化/高速化 †
- プログラム内のデータベース処理高速化TIPS:phpspot開発日誌
explainでインデックスが使われているかを調べる
最も速いクエリは、クエリを発行しないこと、ということでデータをキャッシュしよう
Memcached, CSQL Cache, AdoDB などでそれが可能
必要じゃないモノをselect しないようにする
select-from table;
↓
select id from table;
limit を使って取得する結果を少なくする
foreach ループなどの中でsqlクエリをループさせないで1回にまとめられるのはまとめる
サブクエリの代わりにjoinを使う
ワイルドカードを使う場合は注意する。インデックスが使われないものは低速になる
OR の代わりに UNIONを使う
インデックスを適切に使う
- EXPLAINを使いましょう。大抵のデータベースにはあります。
命名規約/命名規則 †
各データベース機能比較 †
機能 | PostgreSQL 8.0 | Oracle 10g | MySQL 4.1.7 | トランザクション | ○ | ○ | ○ | アーカイブログ | ○ | ○ | X | 行ロック | ○ | ○ | ○ | 外部キー | ○ | ○ | ○ | サブクエリ | ○ | ○ | ○ | ストアドプロシジャ | ○ | ○ | X*1 | ビュー | ○ | ○ | X | トリガ | ○ | ○ | X | スキーマ | ○ | ○ | X | ルール | ○ | X | X | 継承 | ○ | X | X | ドメイン | ○ | ○ | X | 情報スキーマ | ○ | X | X | マルチバイト対応 | ○ | ○ | ○ | ユーザ定義データ型 | ○ | X | X | コンポジットデータ型 | ○ | ○ | X | テーブルスペース | ○ | ○ | X | レプリケーション | △*2 | ○ | ○ | 分散データベース | X*3 | ○ | X |
リンク †
|
|