PHP面試 MySQL數據庫基礎

MySQL數據庫基礎

    MySQL數據類型

      整數類型:TINYINT   SMALLINT   MEDIUMINT   INT   BIGINT mysql

      屬性:UNSIGNEDsql

      長度:能夠爲整數類型指定寬度,列如:INT(11)、對大多數應用是沒有意義的,它不會限制值的合法範圍,只會影響顯示字符的個數。數據庫

      實數類型:FLOAT   DOUBLE   DECIMAL安全

      DECIMAL可存儲比BIGINT還大的整數;能夠用於存儲精確的小數FLOAT和DOUBLE類型支持使用標準的浮點進行近似計算。併發

      字符串類型:VARCHAR   CAHR  TEXT   BLOB函數

      VARCHAR類型用於存儲可變長字符串,它比定長類型更節省空間工具

      VARCHAR使用1或2個額外字節記錄字符串的長度,列長度小於255字節,使用一個字節表示,不然用2個性能

      varchar長度,若是存儲內容超過指定長度,會被截斷。、優化

      char是定長的,根據定義的字符串長度分配足夠的空間。char會根據須要採用空格進行填充以方便比較。線程

      char適合存儲很短的字符串,或者全部值都接近同一個長度

      char長度,超出設定的長度,會被截斷

      對於常常變動的數據,CHAR比VARCHAR更好,CHAR不容易產生碎片,對於很是短的列,CHAR比VARCHAR在存儲空間上更有效率只分配真正須要的空間,更長的列會消耗更多的內存

    MySQL基礎操做

       鏈接數據庫:mysql -u -p -h -p    用戶名   密碼   IP   端口

       show    create   use   drop  delete  select  update

    MySQL存儲引擎

        InnoDB:默認事務型引擎,最重要最普遍的存儲引擎,性能很是優秀,數據存儲在共享表空間,能夠經過配置分開。對主鍵查詢的性能高於其餘類型的存儲引擎,內部作了不少優化,從磁盤讀取數據時自動在內存構建hash索引,插入數據時自動構建插入緩衝區。

        經過一些機制和工具支持真正的熱備份,支持崩潰後的安全回覆,支持行級鎖,支持外鍵。

        MyISAM:5.1版本之前,MyISAM是默認的存儲引擎。擁有全文索引、壓縮、空間函數

        不支持事務和行級鎖,不支持崩潰後的安全恢復。表存儲在兩個文件,MYD和MYI,分別存儲數據和索引。設計簡單,某些場景下性能很好。

      其餘表引擎:Archive   Blackhole   CSV   Memory

    MySQL鎖機制

     鎖是計算機協調多個進程或線程併發訪問某一些資源的機制。

     共享鎖(讀鎖)/排它鎖(寫鎖)

      讀鎖:針對同一份數據,多個讀操做能夠同時進行而不會互相影響

      寫鎖:當前寫操做沒有完成前,它會阻斷其餘線程對當前數據的修改和讀取。

    MySQL事務處理、觸發器

      事務:原子性----一組操做,要麼所有執行成功,要麼所有都不執行。

         隔離性----在全部的操做沒有執行完畢以前,其餘會話不可以看到中間改變的過程。

         一致性----事務發生前和發生後,數據的總額依然匹配

         持久性----事務所執行的結果不能撤銷 

       start   transaction;開啓事務

          要執行的SQL語句

       Commit   提交

       rollback    回滾

       當一個事務提交或回滾以後就結束事務。 

      觸發器:監視某種狀況並觸發某種操做

        Create trigger triggerName 

        After/before insert/update/delete  on 表名

        For each row #這句話是固定的

        Begin

        Sql語句;  # 一句或多句,insert/update/delete範圍內

        End;

        刪除觸發器的語法:

        Drop trigger 觸發器名

        查看觸發器

        Show triggers

相關文章
相關標籤/搜索