AG积分

座機: 029-81773686 熱線: 18966895139
網頁制作、網絡營銷、維護推廣、手機網站制作一站式解決方案
十分感謝六年來與我們攜手共進的朋友們、客戶們!
這些Mysql問題你一定要知道(三)
添加時間:2020-04-24  點擊率:222次

30. NULL是什么意思

答:NULL這個值表示UNKNOWN(未知):它不表示“”(空字符串)。對NULL這個值的任何比較都會生產一個NULL值。您不能把任何值與一個 NULL值進行比較,并在邏輯上希望獲得一個答案。


使用IS  NULL來進行NULL判斷


31. 主鍵、外鍵和索引的區別?

主鍵、外鍵和索引的區別

定義:

 主鍵--唯一標識一條記錄,不能有重復的,不允許為空

 外鍵--表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值

 索引--該字段沒有重復值,但可以有一個空值


作用:

 主鍵--用來保證數據完整性

 外鍵--用來和其他表建立聯系用的

 索引--是提高查詢排序的速度


個數:

 主鍵--主鍵只能有一個

 外鍵--一個表可以有多個外鍵

 索引--一個表可以有多個唯一索引


32. 你可以用什么來確保表格里的字段只接受特定范圍里的值?

答:Check限制,它在數據庫表格里被定義,用來限制輸入該列的值。

觸發器也可以被用來限制數據庫表格里的字段能夠接受的值,但是這種辦法要求觸發器在表格里被定義,這可能會在某些情況下影響到性能。


33. 說說對SQL語句優化有哪些方法?(選擇幾條)

(1)Where子句中:where表之間的連接必須寫在其他Where條件之前,那些可以過濾掉最大數量記錄的條件必須寫在Where子句的末尾.HAVING最后。

(2)用EXISTS替代IN、用NOT EXISTS替代NOT IN。

(3) 避免在索引列上使用計算

(4)避免在索引列上使用IS NULL和IS NOT NULL

(5)對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。  

(6)應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描

(7)應盡量避免在 where 子句中對字段進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描


34. SQL語句中‘相關子查詢’與‘非相關子查詢’有什么區別?

答:子查詢:嵌套在其他查詢中的查詢稱之。

子查詢又稱內部,而包含子查詢的語句稱之外部查詢(又稱主查詢)。

所有的子查詢可以分為兩類,即相關子查詢和非相關子查詢

(1)非相關子查詢是獨立于外部查詢的子查詢,子查詢總共執行一次,執行完畢后將值傳遞給外部查詢。

(2)相關子查詢的執行依賴于外部查詢的數據,外部查詢執行一行,子查詢就執行一次。

故非相關子查詢比相關子查詢效率高


35. char和varchar的區別?

答:是一種固定長度的類型,varchar則是一種可變長度的類型,它們的區別是:  

char(M)類型的數據列里,每個值都占用M個字節,如果某個長度小于M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)在varchar(M)類型的數據列里,每個值只占用剛好夠用的字節再加上一個用來記錄其長度的字節(即總長度為L+1字節).  

varchar的適用場景:

  • 字符串列的最大長度比平均長度大很多

  • 字符串很少被更新,容易產生存儲碎片

  • 使用多字節字符集存儲字符串


Char的場景:

    存儲具有近似得長度(md5值,身份證,手機號),長度比較短小得字符串(因為varchar需要額外空間記錄字符串長度),更適合經常更新得字符串,更新時不會出現頁分裂得情況,避免出現存儲碎片,獲得更好的io性能


36. Mysql 的存儲引擎,myisam和innodb的區別。

答:簡單的表達:

MyISAM 是非事務的存儲引擎;適合用于頻繁查詢的應用;表鎖,不會出現死鎖;適合小數據,小并發

innodb是支持事務的存儲引擎;合于插入和更新操作比較多的應用;設計合理的話是行鎖(最大區別就在鎖的級別上);適合大數據,大并發。


37. 數據表類型有哪些

答:MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等。

       MyISAM:成熟、穩定、易于管理,快速讀取。一些功能不支持(事務等),表級鎖。

       InnoDB:支持事務、外鍵等特性、數據行鎖定。空間占用大,不支持全文索引等。


38. MySQL數據庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎么優化?

a. 設計良好的數據庫結構,允許部分數據冗余,盡量避免join查詢,提高效率。

b. 選擇合適的表字段數據類型和存儲引擎,適當的添加索引。

c. mysql庫主從讀寫分離。

d. 找規律分表,減少單表中的數據量提高查詢速度。

e。添加緩存機制,比如memcached,apc等。

f. 不經常改動的頁面,生成靜態頁面。

g. 書寫高效率的SQL。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE.


39. 對于大流量的網站,您采用什么樣的方法來解決各頁面訪問量統計問題?

答:a. 確認服務器是否能支撐當前訪問量。

b. 優化數據庫訪問。

c. 禁止外部訪問鏈接(盜鏈), 比如圖片盜鏈。

d. 控制文件下載。

e. 使用不同主機分流。

f. 使用瀏覽統計軟件,了解訪問量,有針對性的進行優化。

?
版權所有 ? AG积分宏博網絡,并保留所有權利
客服中心


展開客服