天天看點

Linux運維工程師面試題第九套

本次全部都是mysql的題,非常的基礎,enjoy it~

1、SELECT id,name FROM test1; 和 SELECT id name FROM test1;這兩個語句有什麼差別?

第一個語句會出現兩個列,第二個隻有一個列,列的内容是id的内容,但是列的名稱是name,也就是說第二句話其實就是"SELECT id AS name FROM test1"。

2、如果想把test1表格裡滿足age大于等于30的username都遷移到test2表格裡的username列,需要什麼指令?

INSERT test2(username) SELECT username FROM test1 WHERE age >=30;

【評析】這種方法注意,新表/舊表有更新的時候,舊表/新表不随之更新。因為沒有連結,僅僅是一個一次性的複制而已。

3、列舉出A表裡滿足價格(price)大于A表裡所有貨品平均價格的id,name,age。

SELECT id,name,age FROM A WHERE > (SELECT AVG(price) FROM A)

【評析】 其實可以先求出來AVG(price),然後直接大于那麼值就好,但是要注意SELECT ,SELECT的結果才是一個數。

如果需要把平均值四舍五入,并且保留小數點後兩位,那就ROUND(AVG(price),2)

4、test1表裡有一個叫"country"的列,現在需要做一個test2,專門放這些"country",并且實作這兩個表的多表連接配接。

1)CREATE一個TABLE叫test2,裡面有一列叫id,另一列叫country。

2)INSERT test2(country) SELECT country FROM test1 GROUP BY country;

3)UPDATE test1 AS OLD INNER JOIN test2 AS NEW ON test1.country = test2.country

->SET old.country = new.id 

【評析】“增删改查”,mysql難就難在這個“查”上。

5、Mysql自增長的關鍵字

AUTO_INCREMENT

6、mysql備份執行個體,自動備份mysql,并删除30天前的備份檔案

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<code>#!/bin/bash</code>

<code>#Description:Auto backup mysql</code>

<code>MYSQLDB=Test1</code>

<code>MYSQLUSR=Username</code>

<code>MYSQLPASSWORD=PASSWORD    </code><code>#定義賬号、密碼和需要備份的資料庫名</code>

<code>BACKUPDIR=backupDIR=</code><code>/data/backup/mysql/</code><code>$(</code><code>date</code> <code>+%Y-%m-%d)   </code>

<code>if</code><code>[ $UID -</code><code>ne</code> <code>0 ];</code><code>then</code>    <code>#UID是USERID的意思,0是ROOT的ID号</code>

<code>    </code><code>echo</code> <code>This script must use administrator or root user ,please </code><code>exit</code><code>!    </code>

<code>#提示目前賬戶不是ROOT,需要切換成ROOT使用者</code>

<code>    </code><code>sleep</code> <code>2  </code>

<code>exit</code> <code>0  </code>

<code>fi</code>  

<code>  </code> 

<code>if</code><code>[ ! -d $BAKDIR ];</code><code>then</code>  

<code>mkdir</code> <code>-p $BAKDIR  </code>

<code>else</code>  

<code>echo</code> <code>This is $BAKDIR exists ,please </code><code>exit</code> <code>….  </code>

<code>sleep</code> <code>2  </code>

<code>exit</code>  

<code>fi</code>

/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB &gt;/data/backup/mysql/`date +%Y-%m-%d`/www_db.sql  

cd $BAKDIR ; tar -czf  www_mysql_db.tar.gz *.sql  

cd $BAKDIR ;find  . -name “*.sql” |xargs rm -rf[ $? -eq 0 ]&amp;&amp;echo “This `date +%Y-%m-%d` RESIN BACKUP is SUCCESS”  

cd /data/backup/mysql/ ;find . -mtime +30 |xargs rm -rf  

7、講述一下cookie和session的差別。

cookie機制采用的是在用戶端保持狀态的方案,而session機制采用的是在伺服器端保持狀态的方案。

cookie不是很安全,别人可以分析存放在本地的cookie并進行cookie欺騙,考慮到安全應當使用session。

session會在一定時間内儲存在伺服器上。當通路增多,會比較占用你伺服器的性能,考慮到減輕伺服器性能方面,應當使用COOKIE。

單個cookie儲存的資料不能超過4K,很多浏覽器都限制一個站點最多儲存20個cookie。

【評析】cookie如果沒有設定生存時間,那麼關閉浏覽器的瞬間,cookie就會消失,下一次登陸依舊要輸入賬号密碼,cookie預設是存儲在硬碟裡而不是記憶體裡,如果是設定了生存時間,那麼就會儲存在記憶體裡,下一次繼續使用。

session有一個session id,要是伺服器能查詢的到id,就會按這個id号的内容展現資料,如果查詢不到就會建立一個id,session id是可以用cookie的形式儲存的。

8、講述一下伺服器緩存的原理。

9、如何檢視系統資源占用狀态。

top      uptime    vmstat    free   很多指令都可以

10、如果一個網站平時業務不是很多,但是有時候業務會急劇增長,例如淘寶之類電商網站,遇到特價的時候,流量會特别大,遇到這種情況,在盡量低的成本下,應該如何做。

rsync指令去同步資料,然後dns輪詢。

【評析】sync的遠距離版本就是rsync,r在這裡是remote的縮寫。

它可以當cp這個功能用,rsync -a /A /B   将B的内容拷貝到A檔案夾下。或者rsync main.c machineB:/home/userB,把main.c拷貝到B機器的userB裡,他拷貝速度很快,因為他發現有不同的内容就會拷貝,相同的就跳過。

 本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/1745859

繼續閱讀