タグ

2015年6月6日のブックマーク (3件)

  • MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ

    仕事MySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基的なところから学習しなおした。 MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。インデックスを使用すれば、数百とか数億ものレコードが入っているテーブルから、一組のレコードを迅速に見つけて取り出すことが可能になる。 しかし、インデックスは速度を改善することもあるが、挿入の邪魔になって遅くなることもある。 インデックスを適切に使うために、まずはインデックスの基概念をおさえる必要がある。 インデックスの概念 インデックスとは インデックスの仕組みを理解するには、まずMySQLがどのようにクエリに応答するかを知る必要がある。 例えば、 SELECT * FROM phone_book WHERE last_name = 'Hoge'

    MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ
  • MYSQL INDEXのまとめ - Y's note

    概要 大規模なデータを管理するためのMYSQL-INDEXについて必要な情報をまとめてみます PRIMARYKEY / UNIQKEY / INDEXについて PRIMARYKEYとはそのテーブル内において重複が許されないもので、自動的にINDEXが張られる。 UNIQKEYとはそのテーブル内に置いて重複を許さない。ただし、NOT NULLにしなければNULLの重複は認める。 INDEXとは特定の値を持つレコードを高速に検索するための木構造データ。INDEXを張らないとテーブル全体のデータを検索してしまう。最適化されたINDEXを利用するとテーブルデータを全く参照せずにデータを返却できる。 まとめるとPRIMARYKEY = UNIQKEY + INDEX 複合INDEXについて 複数のカラムに対してのINDEXを作成する事。単一のINDEXより高速な検索ができる。 複合INDEXを利用す

    MYSQL INDEXのまとめ - Y's note
  • ytake.blog | Laravel/データベースレイヤーの再考

    Laravel/データベースレイヤーの再考 Posted: 2015-05-31 02:02 | laravel PHP全般 テストを書くにあたり、より良い設計を考えて実装していくのはフレームワークの機能ではなく、 開発している方次第です。 Eloquentに依存しているシステムなども今一度考えながらリファクタリングを目指してみましょう。 ということで、今回は巷で言われているリポジトリーパターン風ではなく、 スタンダードなリポジトリ+エンティティをLaravelのデータベースコンポーネントの クエリービルダーを使って実装するサンプルです。 まず一つ、コントローラにEloquentなどのデータベースを用いる処理を乗せればMVCじゃん! という意識を少し変える必要があります。 今回の流れは リポジトリ->エンティティ->サービス->コントローラ として実装します。 モデルという言葉はどこにも出