天天看點

MySQL相關面試題整理

1、資料庫的類型有哪些?

MyIASM、InnoDB、HEAP、ISAM、MERGE、DED及Gemen

2、說一說你能想到的sql語句優化,至少5種

(1)避免select *,将需要查詢的字段列出來

(2)使用連接配接join來代替子查詢

(3)拆分大的delete或insert語句

(4)使用limit對查詢結果進行限定

(5)用exists代替in是一個好的選擇

(6)盡量避免在where子句中使用or來連接配接條件,否則将導緻引擎放棄使用索引而進行全表掃描

(7)盡量避免在where子句中進行null值判斷

(8)盡量避免在where子句中使用!=或<>操作符

(9)有大量重複且經常有範圍查詢(between,>=,<=)和order by  group by發生列,可以考慮建立聚集索引

(10)經常存取多列,且每列都要包含有重複值,可以考慮建立組合索引

(11)組合索引要盡量的使用關鍵字查詢形成索引覆寫

3、說一說你能想到的表結構的優化,至少5種

(1)選擇正确的存儲引擎

(2)使用可存下資料的最小的資料類型

(3)使用簡單的資料類型,整型比字元處理開銷更小

(4)使用合理的字段屬性長度,固定長度表會更快

(5)使用enum、char而不是varchar

(6)盡可能使用not null定義字段

(7)給頻繁使用和查詢的字段建立合适的索引

4、說幾個mysql你常用的函數

sum、count、avg、max、min

5、說幾個你除了增删查改之外在mysql中常用的指令

Explain、describe、show、truncate(清空)

6、說幾個除了增删查改之外常用的關鍵字

distinct、limit、offset、order by、union、union all、between、group by

7、查詢語句格式

SELECT 列名1, 列名2...FROM 表名 WHERE 條件

例子:查詢成績前5名

select top 5 學号,學生,成績 from 成績表 where 課程名 order by desc,學号

8、多表查詢

列子:select s.id,s.name,m.mark from student as s,mark as m where m.stu_id = s.id

内連接配接

select s.id,s.name,m.mark from student as s inner join mark as m on m.stu_id = s.id

左連接配接(以左表為标準)

select s.id,s.name,m.mark from student as s left join mark as m on m.stu_id = s.id

右連接配接(以右表為标準)

9、MyISAM與InnoDB的差別

MyISAM:支援全文索引,不支援事務,崩潰恢複支援不好

InnoDB:支援事務、不支援索引,5.6版本後開始支援,性能快

10、什麼是事務

一個SQL語句就是一個事務

開啟事務:start transaction,有問題就rollback,沒有問題就commit

事務可以保證一組sql語句要麼都成功要麼都失敗

事務具有原子性、隔離性、一緻性、持久性

11、視圖

其實就是當作一個查詢表來使用

12、索引

索引在提供查找速度的同時,降低增删改的速度,全文索引可以提高模糊查詢

13、mysql優化之開啟慢查詢日志記錄慢的語句

(1)set global log_slow_queries= on 

(2)設定時間:set long_query_time = 0.5

(3)在另一指令行裡進入mysql data裡,輸入tail -f localhost_slow.log,進行檢視

14、mysql優化之分析慢查詢的原因

(1)打開profiling性能名額set profiling

(2)show profiles

         show profile for query id(檢視某條指令的具體性能)

15、mysql優化之資料庫緩存關閉

(1)show variables like '%cache%'

(2)query_cache_size = 0 為關閉,有資料為打開

16、MySQL預設的端口号是3306,若端口号被占用,應該去哪個檔案修改

linux:my.cnf,windows:my.ini

tomcat的預設端口是8080,如何修改tomcat的端口号

修改tomcat\conf\server.xml檔案中Connctor port的值

17、建立索引的時候要注意什麼

(1)避免使用過多的索引

(2)更新太頻繁字段不适合建立索引

(3)