データベースの一般的な面接問題(答え付)


ガイドを読む
文書ディレクトリ
  • 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.データベース独立性レベル
      :  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        
    

    前のレイアウトに問題があって、効果がよくなくて、再びレイアウトして、カタログを増やして展示を最適化して、もしあなたに役に立つと思ったら、いいねを求めて、注目を求めて、心より