最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Linux運(yùn)維工程師面試題(6)

2023-03-26 18:57 作者:阿賢在b站  | 我要投稿

Linux運(yùn)維工程師面試題(6)
1 數(shù)據(jù)庫事務(wù)的四個(gè)特性及含義
2 mysql 的 sql 語句怎么優(yōu)化
3 varchar 與 char 的區(qū)別是什么?大小限制?utf8 字符集下 varchar 最多能存多少個(gè)字符?
4 索引有什么用?
5 sql 注入是怎么產(chǎn)生的,如何防止?
6 csrf 是什么?如何防范?
7 如何加強(qiáng) MySQL 安全,請給出可行的具體措施?
8 如是數(shù)據(jù)庫慢導(dǎo)致網(wǎng)站打開慢,如何排查并解決?
9 MySQL 有多少種日志
10 MySQL 數(shù)據(jù)庫 cpu 飆升到500%的話他怎么處理?

Linux運(yùn)維工程師面試題(6)

祝各位小伙伴們早日找到自己心儀的工作。
持續(xù)學(xué)習(xí)才不會被淘汰。
地球不爆炸,我們不放假。
機(jī)會總是留給有有準(zhǔn)備的人的。
加油,打工人!

1 數(shù)據(jù)庫事務(wù)的四個(gè)特性及含義

數(shù)據(jù)庫事務(wù)的4個(gè)特性:原?性、持久性、?致性、隔離性

  • 原?性:整個(gè)事務(wù)中的所有操作要么全部完成, 要么全部都不完成, 如果在事務(wù)中操作出現(xiàn)異常,那么事務(wù)將會進(jìn)?回滾,就像這個(gè)事務(wù)從來沒有執(zhí)?過?樣;

  • 持久性:在事務(wù)完成后,該事務(wù)所有的操作都將持久化在數(shù)據(jù)庫中,不會被回滾;

  • ?致性:在事務(wù)開始之前和事務(wù)結(jié)束之后,數(shù)據(jù)庫的完整性約束并沒有被破壞;

  • 隔離性:確保在同?時(shí)間類只有?個(gè)事務(wù)處理某個(gè)數(shù)據(jù)。

2 mysql 的 sql 語句怎么優(yōu)化

  1. 盡量避免使用or、in、not in 和在 where 語句后?使? !=、<>操作符以及對NULL值得判斷, 否則數(shù)據(jù)庫引擎將放棄索引而使用全表掃描。使用 exists 替換 in。

  2. 盡量放棄使? select *,返回?zé)o用的字段會降低查詢效率,需要什么數(shù)據(jù)就取出什么數(shù)據(jù)。

  3. 使? join 代替?查詢。

  4. 設(shè)置合適的字段屬性:例如盡量把字段設(shè)置為 NOT NULL,這樣引擎就不要對?NULL值。

  5. 在表中建立索引,優(yōu)先考慮where、group by使用到的字段。

  6. 盡量避免在字段開頭模糊查詢,會導(dǎo)致數(shù)據(jù)庫引擎放棄索引進(jìn)行全表掃描

3 varchar 與 char 的區(qū)別是什么?大小限制?utf8 字符集下 varchar 最多能存多少個(gè)字符?

char 和 varchar 最?的不同就是?個(gè)是固定?度,?個(gè)是可變?度。由于是可變?度,因此存儲的是實(shí)際字符串再加上?個(gè)記錄字符串?度的字節(jié)。如果分配給 char 或 varchar 列的值超過列的最??度,則對值進(jìn)?裁剪。

varchar(M) 和 char(M),M都表示字符數(shù)。varchar的最大長度為65535個(gè)字節(jié),不同的編碼所對應(yīng)的最?可存儲的字符數(shù)不同。char 最多可以存放255個(gè)字符,不同的編碼最?可?字節(jié)數(shù)不同。字符類型若為utf8,每個(gè)字符最多占3個(gè)字節(jié),varchar 最大長度不能超過21845。

例:

char(4)定義的是固定長度4,存儲時(shí),如果字符數(shù)不夠4位,會在后面用空格補(bǔ)全存入數(shù)據(jù)庫。

varchar(4)定義的是變長長度,存儲時(shí),如果字符沒有達(dá)到定義的位數(shù)4時(shí),也不會在后面補(bǔ)空格。

4 索引有什么用?

對于建?索引的列, mysql 的查詢效率會提?很多。

  • 索引可以降低服務(wù)需要掃描的數(shù)據(jù)量,減少了I/O次數(shù)

  • 索引可以幫助服務(wù)器避免排序和使用臨時(shí)表

  • 索引可以幫助將隨機(jī)I/O轉(zhuǎn)為順序I/O

5 sql 注入是怎么產(chǎn)生的,如何防止?

sql 注?產(chǎn)?原因:因?yàn)樵诔绦蜷_發(fā)過程中沒有對 sql 語句進(jìn)行檢查或未進(jìn)行關(guān)鍵字檢查,導(dǎo)致客戶端可以提交 sql 語句到服務(wù)器運(yùn)行。

如何防止:

  1. 對 sql 與進(jìn)行檢查,過濾。

  2. 不要使用 sql 拼接的方式來拼接 sql 語句,對常?的方法進(jìn)行封裝避免暴露 sql 語句(使用ORM)。

6 csrf 是什么?如何防范?

csrf 成為跨站偽造請求,利用用戶信任過的?站去執(zhí)??些惡意的操作

如何防范:

  1. 檢查 Referer 字段,嚴(yán)格要求該字段只來自于信任的URL;

  2. 添加校驗(yàn) token,將 token 值附加在表單中,攻擊者是無法獲取這個(gè)字,服務(wù)端進(jìn)行檢查發(fā)現(xiàn)該值為空時(shí)將會拒絕服務(wù)。

7 如何加強(qiáng) MySQL 安全,請給出可行的具體措施?

  1. 避免直接從互聯(lián)網(wǎng)訪問 mysql 數(shù)據(jù)庫,確保特定主機(jī)才擁有訪問權(quán)限;

  2. 定期備份數(shù)據(jù)庫;

  3. 禁用或限制遠(yuǎn)程訪問,在 my.cnf 文件里設(shè)置 bind-address 指定 ip;

  4. 移除 test 數(shù)據(jù)庫(默認(rèn)匿名用戶可以訪問 test 數(shù)據(jù)庫);

  5. 禁用 local infilemysql> select load_file("/etc/passwd");在 my.cnf 里 [mysqld] 下添加 set-variable=local-infile=0

  6. 移除匿名賬戶和廢棄的賬戶;

  7. 限制 mysql 數(shù)據(jù)庫用戶的權(quán)限;

  8. 移除和禁用 .mysql_history 文件。

8 如是數(shù)據(jù)庫慢導(dǎo)致網(wǎng)站打開慢,如何排查并解決?

  1. 登陸 mysql 查看有哪些 sql 語句占用時(shí)間過長,how processlist;

  2. 用 explain 查看消耗時(shí)間過長的 SQL 語句是否走了索引;

  3. 對 SQL 語句優(yōu)化,建立索引。

9 MySQL 有多少種日志

  • 錯誤日志:error log,記錄出錯信息,也記錄一些警告信息或者正確的信息;

  • 通用日志:general log,記錄所有對數(shù)據(jù)庫請求的信息,不論這些請求是否得到了正確的執(zhí)行;

  • 慢查詢?nèi)罩荆簊low query log,設(shè)置一個(gè)閾值,將運(yùn)行時(shí)間超過該值的所有 SQL 語句都記錄到慢查詢的日志文件中;

  • 二進(jìn)制日志:binary log,記錄對數(shù)據(jù)庫執(zhí)行更改的所有操作;

  • 中繼日志:reley log,在主從復(fù)制架構(gòu)中,從服務(wù)器用于保存從主服務(wù)器的二進(jìn)制日志中讀取的事件;

  • 事務(wù)日志:transaction log,事務(wù)日志的寫入類型為"追加",因此其操作為"順序IO";通常也被稱為:預(yù)寫式日志write ahead logging。事務(wù)日志文件:ib_logfile0,ib_logfile1。

10 MySQL 數(shù)據(jù)庫 cpu 飆升到500%的話他怎么處理?

當(dāng) cpu 飆升到 500%時(shí),先用操作系統(tǒng)命令 top 命令觀察是不是 mysqld 占用導(dǎo)致的,如果不是,找出占用高的進(jìn)程,并進(jìn)行相關(guān)處理。

如果是 mysqld 造成的,show processlist,看看里面跑的 session 情況,是不是有消耗資源的 sql 在運(yùn)行。找出消耗高的 sql,看看執(zhí)行計(jì)劃是否準(zhǔn)確, index 是否缺失,或者實(shí)在是數(shù)據(jù)量太大造成。

一般來說,肯定要 kill 掉這些線程(同時(shí)觀察 cpu 使用率是否下降),等進(jìn)行相應(yīng)的調(diào)整(比如說加索引、改 sql、改內(nèi)存參數(shù))之后,再重新跑這些 SQL。

也有可能是每個(gè) sql 消耗資源并不多,但是突然之間,有大量的 session 連進(jìn)來導(dǎo)致 cpu 飆升,這種情況就需要跟應(yīng)用一起來分析為何連接數(shù)會激增,再做出相應(yīng)的調(diào)整,比如說限制連接數(shù)等。


以上面試題僅僅個(gè)人總結(jié),想到什么就寫什么,沒有任何順序,寫的有什么不對的地方請各位大佬評論、留言,我會及時(shí)更正。

原文鏈接: [Linux運(yùn)維工程師面試題(6)](https://blog.waluna.top/2023/03/11/1357/).

Linux運(yùn)維工程師面試題(6)的評論 (共 條)

分享到微博請遵守國家法律
东辽县| 那坡县| 北海市| 丰都县| 乌拉特前旗| 外汇| 武定县| 汾阳市| 山东| 类乌齐县| 柳州市| 宽城| 兴城市| 游戏| 资阳市| 北海市| 大化| 宜阳县| 许昌市| 昌乐县| 通河县| 黔东| 郧西县| 诸城市| 来宾市| 茂名市| 莒南县| 漳浦县| 西和县| 安溪县| 横山县| 嘉兴市| 陆良县| 阿拉善右旗| 罗平县| 林口县| 醴陵市| 鄂伦春自治旗| 三明市| 浦北县| 潞城市|