タグ

ブックマーク / tech.aainc.co.jp (3)

  • 「Mockery」を使ってサクッとPHPのテストを書いてみる

    ごあいさつ はじめまして。アライドアーキテクツの石川と申します。 2月に入社してから早くも3ヶ月がたとうとしています。 私は前の職場ではほとんどjavaで開発していたのですが、 アライドに入社してからは主にPHPで開発をしています。 私の回では、その時その時に関心のある技術情報を発信していければ、と思っています。 皆様どうぞよろしくお願いいたします。 今の自分の課題はとにかくUnitテストを書くことなので、 今回はPHPのモッキングフレームワークである「Mockery」について書きたいと思います。 Mockeryって? padraic / mockery こちらで御座います。 static methodのモック化が出来たり、テスト対象のメソッド内部で生成されるインスタンスをモック化したり、 PHPUnitでやろうとすると一手間かかることをサクっと出来てしまいます。 Let’s インストール

  • MySQLでクエリチューニングことはじめ

    最近、寒暖の差が激しいですがみなさん体調は崩されていないでしょうか? こんにちわ。モニプラ for Facebookを担当しています高橋です。 サービス開始当初は問題なかったものの稼働が高くなりデータ量が多くなって クエリのパフォーマンスが悪化すること…よくありますよね? 今回はクエリチューニングの基的な手順とケース別に解決方法を解説したいと思います。 クエリチューニングの手順 1.スロークエリログで問題のクエリをあぶり出す まずはどのクエリが問題なのか特定する必要があります。 アプリケーション側でクエリの実行時間を測定し自前でログを出力しておくというのも手ですが、 お手軽にMySQLの設定で一定時間以上掛かったクエリをログに出力しておくことができます。 スロー クエリ ログ(MySQL 5.1 リファレンスマニュアル) mysqldを–log-slow-queriesオプションつきで起

    mfham
    mfham 2016/08/03
  • MySQLではIN句とサブクエリの組み合わせはインデックスが効かない!?

    な、なんと person_diaryはインデックスが適用されずにフルスキャンされ(1行目のkeyがNULL) 逆にpersonはid列に設定してあるプライマリキーが適用される(2行目のkeyがPRIMARY) という二つの謎な現象が発生しました。 そもそもpersonはnameカラムに対してLIKE検索しているのに、id列のプライマリキーが効いちゃうのは全く納得いきません。なぜ、どうしてこんなことが起こるのでしょう? 原因 私がMySQLに期待していた動きとしては ①サブクエリを実行してperson.idのリストをメモリ中に作成 ②person.person_idに張られているインデックスを使って検索 というところでした。 期待通りに動いてくれなかったのには二つのMySQLの特性が関係していました。 特性① サブクエリを含むSQLは外側から先に実行される MySQLの場合、サブクエリを含む

    MySQLではIN句とサブクエリの組み合わせはインデックスが効かない!?
  • 1