php面试题2018mysql_PHP程序员必会的MySQL面试题
01數據庫字段類型
MySQL常見的數據類型有哪些?
MySQL數據類型分為數值類型、日期時間型和字符串類型。數值類型常見的是TINYINT、INT、DECIMAL,日期類型常見的有DATE、DATETIME,字符串類型常見的有CHAR、VARCHAR、TEXT。詳細介紹見文章末尾的圖片。
MySQL數據類型中CHAR和VARCHAR有什么區別?
CHAR和VARCHAR都是用來存儲字符串的,但是他們存儲和查詢的方式不同。
CHAR是屬于固定長度的字符類型,而VARCHAR是屬于可變長度的字符類型。
因為CHAR是固定長度的,所以它的處理速度比VARCHAR快很多,但是它的缺點是浪費存儲空間。在讀取CHAR類型數據時如果尾部有空格會丟失空格,所以對于那種長度變化不大的并且對查詢速度有較高要求的數據可以考慮使用CHAR類型來存儲。
VARCHAR是變長字符串,對那些對長度不確定的字符串可以使用VARCHAR類型來存儲。
02存儲引擎相關問題
MySQL常見的存儲引擎有哪些?
常見的存儲引擎有InnoDB、MyISAM、MEMORY等
MySQL存儲引擎之間的區別
(1)對于MyISAM來說,不支持事務;不支持外鍵;支持表鎖;這種存儲引擎的表會生成三個文件(索引文件、表結構文件、數據文件);存儲表的總行數,查詢時只要讀取這個總函數就行;采用非聚集索引;支持全文索引和空間索引;
(2)于InnoDB來說,支持事務,有四種事務隔離級別;支持行鎖和外鍵約束;不存儲總行數,查詢總行數需要遍歷整張表;對于AUTO_INCREMENT類型的字段,必須包含只有該字段的索引;表索引和數據存儲在一個文件內;主鍵索引采用聚集索引;
03數據庫事務
數據庫范式介紹
(1)1NF:字段不可分;原子性,字段不可再分,否則就算不上關系數據庫
(2)2NF:有主鍵,非主鍵字段依賴主鍵;唯一性,一個表只說明一個事物
(3)3NF:非主鍵字段不能相互依賴;每列都與主鍵有直接關系,不存在傳遞依賴
數據庫事務基本要素
(1)原子性(Atomicity);事務開始后所有操作,要么全部做完,要么全部不做,不能停滯在中間環節。
(2)一致性(Consistency):事務開始前和結束后,數據庫的完整性約束沒有被破壞。
(3)隔離性(Isolation):同一時間,只允許一個事務請求同一數據,不同的事務之間彼此沒有任何干擾。
(4)持久性(Durability):事務完成后,事務對數據庫的所有更新將被保存到數據庫,不能回滾。
數據庫事務隔離級別
讀未提交(read-uncommitted)、不可重復讀(read-committed)、可重復讀(repeatable-read)、串行化(serializable)
臟讀、幻讀、不可重復讀介紹
(1)臟讀:事務B修改數據但未提交,事務A讀數據,然后B回滾,則A讀到的是臟數據。
(2)不可重復讀:事務A第一次讀取數據,事務B修改數據提交,事務A第二次讀數據,兩次數據不一致。
(3)幻讀:事務A update表的全部行,事務B插入一行,事務A就會發現表中還有未修改的行。(一般加間隙鎖)
總結
以上是生活随笔為你收集整理的php面试题2018mysql_PHP程序员必会的MySQL面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 【Pytorch神经网络理论篇】 10
 - 下一篇: PackagesNotFoundErro