最近更新したファイルを調べる

findコマンドにオプションを付けることで調べることができる。さらにディレクトリや条件を付与することで範囲を限定する。

形式

オプション例

最後にデータが修正されたのがn日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)

最後にデータが修正されたのがn分前のファイル・ディレクトリを検索(+n:n分以上、-n:n分以下)

コンパイル

説明

狭義

ソースプログラムからアセンブリ語のプログラムを作る処理

広義

オブジェクトを作るのに必要な「プリプロセス、コンパイル、アセンブル、リンク」を全てひっくるめた意味。ビルドともいう。

コンピュータが直接処理できるのはマシン語と呼ばれる言語だけです。人間がわかりやすいような言語(PHPなど)で書かれたプログラムを直接実行することはできません。
プログラムを作成したらコンパイル(プログラムをコンピュータが理解できるように翻訳する)作業が必要になります。

var_dump

説明

・変数に関する情報をダンプすること。
→ ダンプする ・・・ データなどをファイルや画面に出力すること

引数として指定した変数の内容や命令の返値を画面上に出力すること

例)変数 $a に文字列「hoge」が格納されていた場合、

$aをvar_dumpする

画面上には、次の様に変数の内容が出力されます。

この場合のstringは変数の型を示し、「(4)」は文字列のバイト数を示し、そしてダブルクォート内が内容(値)を表しています。
※文字列、4バイト、hogeを示します。

vim チートシート 実践編

モード

挿入モードへ

カーソル移動

ファイルの先頭に移動する

ファイルの末尾に移動する

行頭に移動する

行末に移動する

編集

ファイル

検索と置換

領域選択

領域選択スタート

短形選択スタート

行選択スタート

コピー

切り取り

ウィンドウ

画面を上下に分割する

画面を分割しつつ、ファイル名のファイルを開く

今いるウィンドウにファイルを開く

今いるウィンドウにて各コマンドを実行する

buffer(バッファ管理)

register(レジスタ管理)

mark(マーク)

folding(折りたたみ)

word completion(単語補完)

recording(操作記憶)

外部コマンドとの連携

*参考URL

  • vimで効率的にコードを書くための小技
  • Vim Documents in Japanese
  • 名無しのvim使い

各種バージョンをコマンドで確認(OS・Apache・MySQL・Nginx・PHP)

OSのバージョン

Webサーバーのバージョン

Apacheのバージョン

Nginxのバージョン

phpのバージョン

php実行環境のバージョン

php-fpmのバージョン

hhvmのバージョン

データベースのバージョン

register_post_type

概要

投稿タイプを作成・設定する関数。
wp-includes/post.phpにおいてはこの関数を用いて、WordPressの基本となる投稿タイプの設定が行われている。

カスタム投稿タイプを自身で追加する際にはfunctions.phpに記述することで追加作成を行うことができる。

使い方

「register_post_type」関数の基本構文は次の通り。

第一引数($post_type)ではカスタム投稿の名前を入力する。
第二引数($args)ではカスタム投稿タイプの属性を連想配列または文字列で指定する。

用例

“book” というカスタム投稿タイプを登録する例。

管理画面に「book」というカスタム投稿が出力されることが確認できます。

MySQLのEXPLAIN

EXPLAINはSELECTステートメントの実行プランに関する情報を提供します。つまりSQLの実行計画、「mysqlが作成したクエリをどのように判断して実行したのか」というものが
見れるようなものです。(データへのアクセス方法がわかるものです。)
これにより現在どのようにクエリが実行されているかということを知ることができ、これを知ることでクエリの最適化(※)へとつなげることができる。
(※)クエリを最適化するということは、
・書き換える前と後でクエリの実行結果が同じになる
・EXPLAINがよりよい実行計画を表示する
ということ

使い方

SELECT文の先頭に「EXPLAIN」をつけて実行する
例)

出力結果)

各フィールドの情報について

id

SELECT識別子。クエリー内のSELECTの連番です。

select_type

クエリの種類を表すもの。クエリの種類とはJOIN、サブクエリ、UNIONおよびそれらの組み合わせのことで、select_typeの内容もその組み合わせから導き出されたものである。

JOINの場合

MySQLが実行できるJOINの種類は「Nested Look Join(NLJ)」の一種類しかない。
テーブルを一つずつ順に処理していく方式のこと。クエリがJOINだけから構成される場合、select_typeは「SIMPLE」と表示される。SIMPLEではidが全て同じ値になる。EXPLAINの出力の順序がどのテーブルから処理するかということを反映している。

サブクエリの場合

次の5種類のうちいずれかが表示される。

  • PRIMARY・・・外部クエリを示す。
  • SUBQUERY・・・相関関係のないサブクエリ。
  • DEPENDENT SUBQUERY・・・相関関係のあるサブクエリ。
  • UNCACHEABLE SUBQUERY・・・実行する度に結果が変わる可能性のあるサブクエリ。
  • DERIVED・・・FROM句で用いられているサブクエリ。
UNIONの場合

クエリにUNIONが含まれる場合、次の5種類のいずれかがselect_typeに表示される。

  • PRIMARY・・・UNIONにおいて最初にフェッチされるテーブル
  • UNION・・・2番目以降にフェッチされるテーブル
  • UNION RESULT・・・UNIONの実行結果
  • DEPENDENT UNION・・・DEPENDENT SUBQUERYがUNIONになっている場合
  • UNCACHEABLE UNION・・・UNCACHEABLE SUBQUERYがUNIONになっている場合

table

出力の行で参照しているテーブルの名前。

table

このフィールドはレコードアクセスタイプとも呼ばれ、対象のテーブルに対してどのような方法でアクセスするかを示す。致命的なクエリはこのフィールドを見れば一目で分かるのでとても重要なフィールドである。よく見かけるものは次の通り。

  • const・・・PRIMARY KEYまたはUNIQUEインデックスのルックアップによるアクセス。最速。
  • eq_ref・・・JOINにおいてPRIARY KEYまたはUNIQUE KEYが利用される時のアクセスタイプ。constと似ているがJOINで用いられるところが違う。
  • ref・・・ユニーク(PRIMARY or UNIQUE)でないインデックスを使って等価検索(WHERE key = value)を行った時に使われるアクセスタイプ。
  • range・・・インデックスを用いた範囲検索。
  • index・・・フルインデックススキャン。インデックス全体をスキャンする必要があるのでとても遅い。
  • ALL・・・フルテーブルスキャン。インデックスがまったく利用されていないことを示す。OLTP系の処理では改善必須。

※indexまたはALLを見かけたらすかさずクエリをチューニングしよう。

possible_keys

オプティマイザがテーブルのアクセスに利用可能なインデックスの候補として挙げたキーの一覧。

key

オプティマイザによって選択されたキー。

key_len

選択されたキーの長さ。インデックスの走査は、キー長が短い方が高速である。

ref

検索条件で、keyと比較されている値やカラムの種類。定数が指定されている場合はconstと表示される。JOINが実行されている時には、結合する相手側のテーブルで検索条件として利用されているカラムが表示される。

rows

rows カラムは、MySQL がクエリーを実行するために調査する必要があると考える行数を示します。
※InnoDB テーブルの場合、これは推定値であり、常に正確ではないことがあります。

EXTRA

MySQL がクエリーを解決する方法に関する追加情報が含まれます。

  • Using where・・・頻繁に出力される追加情報であまり気にする必要はない
  • Using index・・・クエリがインデックスだけを用いて解決できることを示す。カバリングインデックスを利用している場合などに表示される。
  • Using filesort・・・ソートを行っている。適切なインデックスを張ることで改善されるかもしれないことを表す。

※参照:
http://qiita.com/Tsuji_Taku50/items/43eb2a41915d03173773
https://dev.mysql.com/doc/refman/5.6/ja/explain-output.html#explain-output-column-table