日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

记录数据库面试题及答案21~41

發布時間:2023/12/10 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记录数据库面试题及答案21~41 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫面試題

  • **不斷更新中**
  • 21. 如何防范SQL注入式攻擊
  • 22. 默認的系統數據庫有哪些
  • 23. 默認創建一個數據庫,會生成那些文件
  • 24. 創建數據庫時,能不能把數據文件和日志文件分開
  • 25. 什么是索引覆蓋(Index Covering)查詢?
  • 26.存儲過程和函數的區別
  • 27. 聚集索引和非聚集索引的區別
  • 28.索引的優缺點,什么時候使用索引,什么時候不能使用索引
  • 29. 數據庫優化
  • 30. 索引分類索引失效條件
  • 31. 數據庫的主從復制
  • 32. long query怎么解決
  • 33. varcher 和 char的使用場景
  • 34. 數據庫連接池的作用
  • 35. 分庫分表,主從復制,讀寫分離
  • 36. 數據庫三范式
  • 37. 數據庫中的join的inner join,outer join,coors join
  • 38. 有哪些鎖,selete時怎么加排它鎖
  • 39. 死鎖怎么解決
  • 40. 最左匹配原則
  • 41. SQLServer 是一種大型數據庫,他的儲存容量只受儲存介質的限制,請問他是通過什么方式實現這種無線容量機制的

不斷更新中

21. 如何防范SQL注入式攻擊

一, 不使用動態SQL拼接
二, 利用在表單輸入的內容構造SQL命令之前,把所有輸入內容過濾一番

對于動態構造SQL的場合時

  • 替代單引號,把所有單獨出現的單引號改成兩個單引號,防止攻擊者修改SQL命令的含義.
  • 刪除用戶輸入內容中所有的連字符.
  • 對于用來執行查詢的數據庫賬戶,限制其權限,用不同的用戶賬戶執行語句操作.
  • 用存儲過程來執行所有的查詢
  • 限制輸入的字符串長度
  • 檢查用戶輸入合法性,確保用戶輸入內容只包含合法的數據
  • 對用戶登錄名稱和密碼加密保存
  • 檢查提取數據的查詢所返回的記錄數量
  • 22. 默認的系統數據庫有哪些

  • master(主) : 是SQL Server中最重要的一個數據庫,記錄系統中所有的信息
  • tempdb(臨時) : 存在SQL Server會話期間臨時性的數據庫
  • model(模板) : 是模板庫,建立數據庫的一些模板
  • msdb(計劃任務): 提供SQL Server中所有的代理服務
  • 23. 默認創建一個數據庫,會生成那些文件

  • 主文件(.mdf)
  • 日志文件(.ldf)
  • 次要文件(.ndf)
  • 24. 創建數據庫時,能不能把數據文件和日志文件分開

    可以分開,起到優化作用,把數據庫文件放到高速讀寫區,把日志文件放到低速讀寫區

    25. 什么是索引覆蓋(Index Covering)查詢?

    是指數據可以通過索引獲取,而不用接觸表.
    比如: 非聚集復合索引: 建立索引字段時正好覆蓋了條件查詢中所涉及到的字段

    26.存儲過程和函數的區別

  • 存儲過程可以有返回參數,函數只能返回值或者表對象
  • 函數必須有返回值,存儲對象可有可無
  • 存儲過程一般作為一個獨立的部分來執行,而函數可以作為查詢語句的一部分來調用
  • 27. 聚集索引和非聚集索引的區別

    根本區別: 表中記錄的排列順序和索引的排列順序是否一致

    28.索引的優缺點,什么時候使用索引,什么時候不能使用索引

    優點: 提高查詢速度
    缺點: 更新數據時效率低,應為要同時更新索引
    對數據進行頻繁查詢建立索引,頻繁更新時不建議使用索引

    29. 數據庫優化

  • SQL盡量使用索引
  • 對SQL語句進行優化
    - 子查詢變成 left join
    - limit分布優化,先利用ID定位,再分頁
    - or 條件優化,多個or條件可以用union all對結果進行合并
    - 不必要的排序
    - where代替having ,having檢索完所有記錄,再進行過濾
    - 避免嵌套查詢
    - 對多個字段進行等值查詢時,聯合索引
  • 30. 索引分類索引失效條件

  • 普通索引: 最基本索引,沒有任何限制
  • 唯一索引: 與普通索引類似,不同的是,索引列的值必須唯一,但允許有空值
  • 主鍵索引: 特殊的唯一索引,不允許有空值
  • 全文索引: 針對較大數據,生成全文索引耗時間,好空間
  • 組合索引: 為了更多的提高mysql效率可建立組合索引,遵循"最左前綴"原則
    失效條件
  • 條件是or,如果想條件生效,給or每個字段加索引
  • like查詢,以%開頭
  • 內部函數
  • 對索引類進行計算
  • 31. 數據庫的主從復制

    1.默認異步復制
    容易造成主庫數據與從庫數據不一樣
    通過binlog日志實現,數據庫1兩個線程,一個讀取數據庫2的binlog日志,一個解析日志執行sql
    數據庫2啟動一個線程,給數據庫1傳遞日志

    2.半同步復制
    只有把數據庫1的發送的binlog日志寫道數據庫2的中繼日志,這時主庫才返回操作完成反饋,性能有一定降低
    3.并行復制
    數據庫2多個線程去請求binlog日志

    32. long query怎么解決

    是指設置數據庫日志,記錄記錄耗時耗時過長的sql語句
    設置參數,開啟慢日志功能,得到耗時超過一定時間的sql
    slow query log開啟記錄慢查詢功能,slow query log=0關閉
    slow query log=1開啟,1可不寫
    slow query time=1,這句記錄超過一秒

    33. varcher 和 char的使用場景

    儲存字符
    varder適合字符長度經常變的
    char適合字符長的固定的

    34. 數據庫連接池的作用

    維護一定數據的連接,減少創建連接的時間
    更快的響應時間
    統一的管理

    35. 分庫分表,主從復制,讀寫分離

    讀寫分離,讀從庫,寫主庫
    spring可以配置兩個數據庫,通過TOP(面向切面編程)在寫和讀方法前面進行判斷得到動態切換數據源
    實現讀寫分離

    36. 數據庫三范式

    范式:符合某一種級別的關系模型的集合
    1NF 屬性不可分: 通俗理解即一個字段只存儲一項信息
    2NF 非主鍵屬性,完全依賴主鍵屬性: 要求數據庫表中的每個實例或行必須可以被惟一地區分。
    3NF 非主鍵屬性無傳遞依賴: 要求一個數據庫表中不包含已在其它表中已包含的非主鍵字段

    37. 數據庫中的join的inner join,outer join,coors join

    以AB兩張表為例

    cross join:交叉連接,得到的結果是兩個表的乘積,即笛卡爾積

    38. 有哪些鎖,selete時怎么加排它鎖

  • 樂觀鎖: 樂觀鎖不鎖任何東西,他不依賴數據庫事務機制,完全是應用系統層面的東西
  • 悲觀鎖: 是指假設并發更新沖突會發生, 所以不管沖突是否發生都會使用鎖機制
  • 排它鎖: 可以防止并發事務對資源進行訪問
  • 共享鎖: 允許并發事務在封閉式并發控制下讀取資源
  • 更新鎖:是共享鎖和排它鎖的集合,
  • 表鎖:鎖住整個表可同時讀,寫不行
  • 行級鎖:單獨一行記錄加鎖
    在語句中加入for update是給相應行增加排它鎖.Selete出來的數據別的事務不能讀取,不能修改,不能刪除
  • 39. 死鎖怎么解決

    找到進程號,kill 進程
    產生死鎖的原因:
    1.系統提供的資源數量有限,不能滿足每個進程的使用,
    2.多道程序運行時,推進程序不合理
    產生死鎖的必要條件
    1.互斥條件
    2.不可不多條件(不可占條件)
    3.部分分配
    4.循環等待
    根據死鎖的四個必要條件,只要使其中一不成立 ,死鎖就不會出現,可采取三種 預防措施
    1.采用資源動態分配策略
    2.允許進程剝奪使用其他進程占有的資源,從而破壞" 不可剝奪 "條件
    3.采用資源有序分配法,破壞 “環路” 條件

    40. 最左匹配原則

    最左匹配原則是針對索引的
    兩個字段(name,age)建立聯合索引,如果where age=12 這樣的話,是沒有利用到索引的.
    如果where name= ‘XXX’ and age=12,這時就利用到索引,
    因為創建復合索引的規則是首先對復合索引的最左邊的字段先排序,然后在對后邊的第二個字段排序.

    41. SQLServer 是一種大型數據庫,他的儲存容量只受儲存介質的限制,請問他是通過什么方式實現這種無線容量機制的

    他的所有數據都存儲在數據文件中(*.dbf),所以只要文件夠大,SQLServer的存儲容量是可以擴大的
    SQLServer 數據庫有三種類型文件
    主要數據庫文件
    主要數據文件是數據庫的起點,指向數據庫中文件的其他部分,每個數據庫都有一個主要數據文件主要數據文件推薦文件擴展名是.mdf
    次要數據文件
    次要數據文件包含除主要數據文件外的所有數據文件,有些數據庫可能沒有次要數據文件,而有些數據庫則需要多個次要數據文件擴展名為.ndf
    日志文件
    日志文件包含恢復數據庫所需的所有日志文件,每個數據庫至少有一個日志文件,但可以不止一個擴展名為.ldf

    總結

    以上是生活随笔為你收集整理的记录数据库面试题及答案21~41的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。