データベースの一般的な面接問題(答え付)
ガイドを読む
文書ディレクトリ 1.トランザクションの4つの特性 2.データベース独立性レベル 3.MYSQLの2つのストレージエンジンの違い(トランザクション、ロックレベルなど)、それぞれの適用シーン 4.インデックスにはB+インデックスとhashインデックスがあります 5.集計インデックスおよび非集計インデックス 6.インデックスのメリットとデメリットは、インデックスがいつ使用されるか、インデックスがいつ使用できないかということです. 7.InnoDBインデックスとMyISAMインデックスの違い 8.インデックスの下位実装(B+ツリー、なぜ赤黒ツリー、Bツリーを採用しないのか)ポイント 9.B+ツリーの実装 0.B+Tree を使用する理由 11.Sqlの最適化 12.インデックス最左プレフィックス問題 3.インデックス分類、インデックス失効条件 4.データベースのプライマリ・スレーブ・レプリケーション 15.long_queryはどうやって を解決しますか? 16.varcharとcharの使用シーン 17.データベース接続プールの役割 19.ライブラリ分割テーブル、マスターコピー、読み書き分離 20.データベース3パターン 21.リレーショナル・データベースと非リレーショナル・データベースの違い 22.データベース内のjoinのinner join,outer join,cross join 23.どのロックがあるか、select時にどのようにロックを追加するか 4.デッドロックはどうやって を解決しますか? 25.最左マッチング原則 1.トランザクションの4つの特性
2.データベース独立性レベル
3.MYSQLの2つのストレージエンジンの違い(トランザクション、ロックレベルなど)、それぞれの適用シーン
エンジン
とくせい
MYISAM
外部キー、テーブルロック、データ挿入時、テーブル全体をロックし、テーブルの総行数を調べる時、全テーブルスキャンを必要としない
INNODB
外部キー、行ロック、テーブルの合計行数を調べる場合、全テーブルスキャンをサポートする
4.インデックスにはB+インデックスとhashインデックスがある
索引
区別する
Hash
hashインデックス、等値クエリー効率が高く、ソートできず、範囲クエリーができません
B+
データの順序付け、範囲クエリー
5.集計インデックスと非集計インデックス
索引
区別する
集計インデックス
データはインデックス順に格納され、中性子ノードは実際の物理データを格納します.
非集計インデックス
真のデータ行へのポインタの格納
6.インデックスのメリットとデメリットは、インデックスをいつ使用するか、インデックスをいつ使用できないかです.
7.InnoDBインデックスとMyISAMインデックスの違い
8.インデックスの下位実装(B+ツリー、なぜ赤と黒のツリーを採用しないのか、Bツリー)ポイント
ツリー
区別する
赤黒い木
増加、削除、赤と黒の木は頻繁に調整して、赤と黒の木の性質を保証して、時間を浪費します
B木つまりB木
Bツリーは、クエリーのパフォーマンスが不安定で、クエリーの結果が高くありません.各ノードは実際のデータを指すポインタを保存し、B+ツリーの各層の各屋に格納されている要素よりも高く見えます.
B+ツリー
B+ツリーは他の2つのツリーと比較して、より低く、より広く、クエリー階層がより浅いように見えます.
9.B+ツリーの実装
10.なぜB+Treeを使うのか
11.Sqlの最適化
1.sqlはできるだけインデックスを使用し、クエリーはインデックスを取得します.
2.sql文の最適化
12.インデックスの最左接頭辞の問題
13.索引分類、索引失効条件
索引タイプ
コンセプト
一般索引
最も基本的なインデックスで、制限はありません.
ユニークインデックス
通常のインデックスと同様に、インデックス列の値は一意でなければなりませんが、空の値を許可します.
プライマリ・キー索引
特殊な一意のインデックスであり、NULL値は許可されません.
全文索引
大きなデータに対して、全文インデックスを生成するには時間と空間がかかります.
結合インデックス
mysqlの効率を向上させるために、組み合わせインデックスを確立し、「最左接頭辞」の原則に従います.
14.データベースのプライマリ・スレーブ・レプリケーション
コピー方法
操作
非同期レプリケーション
デフォルトの非同期レプリケーションでは、プライマリ・ライブラリのデータとスレーブ・ライブラリが一致しない可能性があります.1つのデータベースはMaster、1つのデータベースはslaveです.Binlogログ、slave 2つのスレッド、1つのスレッドはmaster binlogログを読み、自分の中継ログに書きます.1つのスレッド解析ログ、sqlを実行します.masterはスレッドを起動し、slaveにbinlogログを渡します.
はんどうきふくせい
マスターから送信されたbinlogログをslaveの中継ログに書き込むと、メインライブラリは、操作完了のフィードバックを返し、パフォーマンスが低下します.
パラレルオペレーション
slave複数のスレッドがbinlogログを要求する
15.long_queryはどのように解決しますか
16.varcharとcharの使用シーン
を選択します.
シーンの操作
varchar
文字長が常に変化する
char
文字の長さで固定された
17.データベース接続プールの役割
19.ライブラリ分割テーブル、マスターコピー、読み書き分離
20.データベースの三パターン
レベル
コンセプト
1NF
属性不可分
2NF
プライマリ・キー以外のプロパティ、プライマリ・キー・プロパティに完全に依存
3NF
非プライマリ・キー属性の伝達依存性なし
21.リレーショナル・データベースと非リレーショナル・データベースの違い
リレーショナル・データベース
非リレーショナル・データベース
22.データベース内のjoinのinner join,outer join,cross join
23.どのロックがあるか、select時にどのようにロックを追加するか
ロック
コンセプト
楽観ロック
バージョン番号による自己実装
悲観ロック
共有ロック、複数のトランザクション、読み書きしかできない、lock in share mode
排他ロック
1つのトランザクション、書くことしかできなくて、for update
行ロック
データ行に作用
テーブルロック
用表
24.デッドロックの解決方法
25.最左照合原則
前のレイアウトに問題があって、効果がよくなくて、再びレイアウトして、カタログを増やして展示を最適化して、もしあなたに役に立つと思ったら、いいねを求めて、注目を求めて、心より
文書ディレクトリ
, ,
,
, ,
, ,
2.データベース独立性レベル
: B A
:
: A , B , A , ,
3.MYSQLの2つのストレージエンジンの違い(トランザクション、ロックレベルなど)、それぞれの適用シーン
エンジン
とくせい
MYISAM
外部キー、テーブルロック、データ挿入時、テーブル全体をロックし、テーブルの総行数を調べる時、全テーブルスキャンを必要としない
INNODB
外部キー、行ロック、テーブルの合計行数を調べる場合、全テーブルスキャンをサポートする
4.インデックスにはB+インデックスとhashインデックスがある
索引
区別する
Hash
hashインデックス、等値クエリー効率が高く、ソートできず、範囲クエリーができません
B+
データの順序付け、範囲クエリー
5.集計インデックスと非集計インデックス
索引
区別する
集計インデックス
データはインデックス順に格納され、中性子ノードは実際の物理データを格納します.
非集計インデックス
真のデータ行へのポインタの格納
6.インデックスのメリットとデメリットは、インデックスをいつ使用するか、インデックスをいつ使用できないかです.
,
,
, 。
7.InnoDBインデックスとMyISAMインデックスの違い
,InnoDB 。 MyISAM 。
:InnoDB data
8.インデックスの下位実装(B+ツリー、なぜ赤と黒のツリーを採用しないのか、Bツリー)ポイント
ツリー
区別する
赤黒い木
増加、削除、赤と黒の木は頻繁に調整して、赤と黒の木の性質を保証して、時間を浪費します
B木つまりB木
Bツリーは、クエリーのパフォーマンスが不安定で、クエリーの結果が高くありません.各ノードは実際のデータを指すポインタを保存し、B+ツリーの各層の各屋に格納されている要素よりも高く見えます.
B+ツリー
B+ツリーは他の2つのツリーと比較して、より低く、より広く、クエリー階層がより浅いように見えます.
9.B+ツリーの実装
m B+ :
1. k k (B k-1 ), , , 。
2. , , 。
3. , ( )
10.なぜB+Treeを使うのか
I/O , IO , 。
B-Tree , h 。 ,
, I/O
11.Sqlの最適化
1.sqlはできるだけインデックスを使用し、クエリーはインデックスを取得します.
2.sql文の最適化
left join
limit , ID ,
or , or union all (union all )
where having,having ,
,
12.インデックスの最左接頭辞の問題
, ,
13.索引分類、索引失効条件
索引タイプ
コンセプト
一般索引
最も基本的なインデックスで、制限はありません.
ユニークインデックス
通常のインデックスと同様に、インデックス列の値は一意でなければなりませんが、空の値を許可します.
プライマリ・キー索引
特殊な一意のインデックスであり、NULL値は許可されません.
全文索引
大きなデータに対して、全文インデックスを生成するには時間と空間がかかります.
結合インデックス
mysqlの効率を向上させるために、組み合わせインデックスを確立し、「最左接頭辞」の原則に従います.
or, or , or
like , %
is null ,is not null
14.データベースのプライマリ・スレーブ・レプリケーション
コピー方法
操作
非同期レプリケーション
デフォルトの非同期レプリケーションでは、プライマリ・ライブラリのデータとスレーブ・ライブラリが一致しない可能性があります.1つのデータベースはMaster、1つのデータベースはslaveです.Binlogログ、slave 2つのスレッド、1つのスレッドはmaster binlogログを読み、自分の中継ログに書きます.1つのスレッド解析ログ、sqlを実行します.masterはスレッドを起動し、slaveにbinlogログを渡します.
はんどうきふくせい
マスターから送信されたbinlogログをslaveの中継ログに書き込むと、メインライブラリは、操作完了のフィードバックを返し、パフォーマンスが低下します.
パラレルオペレーション
slave複数のスレッドがbinlogログを要求する
15.long_queryはどのように解決しますか
, , sql
16.varcharとcharの使用シーン
を選択します.
シーンの操作
varchar
文字長が常に変化する
char
文字の長さで固定された
17.データベース接続プールの役割
,
19.ライブラリ分割テーブル、マスターコピー、読み書き分離
, ,
spring , AOP( ), 。
20.データベースの三パターン
レベル
コンセプト
1NF
属性不可分
2NF
プライマリ・キー以外のプロパティ、プライマリ・キー・プロパティに完全に依存
3NF
非プライマリ・キー属性の伝達依存性なし
21.リレーショナル・データベースと非リレーショナル・データベースの違い
リレーショナル・データベース
1、 : , 、 ;
2、 : SQL ;
3、 : ( 、 ) ;
4、 SQL, 。
5.
1、 ;
2、 ;
3、 ;
4、
非リレーショナル・データベース
1、 ;
2、 ;
sql ,
, ,
:nosql key,value
sql
22.データベース内のjoinのinner join,outer join,cross join
1. A,B
A left join B
A ,B null
right join
2.inner join
A,B , null
3.cross join ( )
A B
A 4 ,B 4 ,cross join 16
23.どのロックがあるか、select時にどのようにロックを追加するか
ロック
コンセプト
楽観ロック
バージョン番号による自己実装
悲観ロック
共有ロック、複数のトランザクション、読み書きしかできない、lock in share mode
排他ロック
1つのトランザクション、書くことしかできなくて、for update
行ロック
データ行に作用
テーブルロック
用表
24.デッドロックの解決方法
,kill
25.最左照合原則
: (name,age) , where age=12 , ,
name , age , age , ,
where name=‘xxx’ and age=xx , , where age=xx and name=’xxx‘ sql ,
, , 。 sql
前のレイアウトに問題があって、効果がよくなくて、再びレイアウトして、カタログを増やして展示を最適化して、もしあなたに役に立つと思ったら、いいねを求めて、注目を求めて、心より