忍者ブログ

プログラミングの練習

プログラミングの問題やプログラミング関連知識、ソフトウェアのテストについてのブログです

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。




MySQL InnoDBのインデックス

1.クラスタード・インデックス

・主キーを元に作成する

・1テーブルにつき、1つ作成される

・B+ Tree 構造


2.セカンダリー・インデックス

・主キー以外に作成される

・B+ Tree 構造


3.Adaptive Hash Index

テーブルがメモリーにおさまりそうな場合

自動的にハッシュインデックスをメモリー内に作成する




MySQL トランザクションの分離レベルの読み出し、書き出しの違い

MySQL トランザクションの分離レベルの読み出し、書き出しの違い

1.ダーティーリード

別のトランザクションが、COMMITされていないデータを読み込む

2.ノンリピーダブルリード(反復不可能読み込み)

2度目のSELECT時、1回目と2回目の間で、

他のトランザクションがCOMMITしたデータを読み込む。

前回と同じ結果が得られない

3.ファントムリード

ノンリピーダブルリードは、Updateに関する事項

ファントムリードは、Insertに関する事項










アルゴリズム 挿入ソート

○ソートの問題とは、

 Input が、n個の数 (a1,a2,・・・aN)
  
   Output が、Inputのn個の数を順に並べたもの (a2, a3・・・)等


○挿入ソートは、順に、要素を正しい位置へ挿入していくもの


○挿入ソートは、要素の数が少ない場合には、効率的なアルゴリズムである


○たとえば、{5,2,4,6} を挿入ソートでソートするイメージは、次となる



・1回目

 2要素目の2を選択する。1番目の要素5と比較して、2が小さいので、1番目へ2を挿入

 すると、{2,5,4,6} となる


・2回目

 3番目の要素4を選択する。まず、先頭の2と比較し、2より大きいので、次に5と比較。

 5より小さいので、5の前へ挿入

 すると、{2,4,5,6}



以降、これを繰り返す