MySQL資料庫的基本操作 學習筆記

來源:互聯網
上載者:User

標籤:mysql儲存引擎   歸檔   合并   test   com   資料表空間   自動更新   支援   tab   

主要內容包括:建立資料庫,刪除資料庫,不同類型的資料存放區引擎和儲存引擎的選擇。

  • 建立資料庫,預設data目錄下建立幾個必需的資料庫,用 SHOW DATABASES;查看如下:

其中mysql資料庫描述使用者存取權限,建立資料庫是在系統磁碟上劃分一塊地區用於資料的儲存和管理。基本格式為  CRATE DATABASE database_name;

如建立 test_db資料庫

用如下命令查看test_db的定義

 

  • 刪除資料庫,基本格式 DROP DATABASE database_name;

刪除test_db 如下所示:

使用DROP命令,不會有提示,而且資料庫的所有資料都會被刪除,切不能恢複。

  • 資料庫儲存引擎

是資料庫底層軟體組建,DBMS用資料引擎進行建立查詢,更新和刪除資料操作。不同的儲存引擎提供不同的儲存機制,索引技巧,鎖定水平等功能,使用不同的儲存引擎,還可以獲得特定的功能。MySQL的核心就是儲存引擎。

    • MySQL儲存引擎簡介,提供多個不通的儲存引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎,不需要在整個伺服器中使用同一種儲存引擎,針對具體的要求,可以對每個表使用不通的儲存引擎。MySQL5.7支援的儲存引擎有: InnoDB, MyISAM, Memory,Merge,Archive,Federated,CSV,BLACKHOLE等,使用 SHOW ENGINES查看系統所支援的引擎類型:其中Support的值 YES表示支援,NO表示不能使用,DEFAULT表示為當前預設儲存引擎。
    •  InnoDB儲存引擎,事務性的,支援事務安全表(ACID),支援行鎖定和外鍵。為預設儲存引擎,主要特性有:

      • InnoDB給MySQL提供了具有提交,復原,和崩潰恢複能力的事務安全(ACID相容)儲存引擎,InnoDB鎖定在行級並且也在SELECT語句中提供一個類似Oracle的非鎖定讀。這些功能增加了多使用者部署和效能,在SQL查詢中,可以自由將InnoDB類型的表與其他MySQL的表的類型混合起來,甚至在同一個查詢中也可以混合。
      • InnoDB是為處理巨大資料量的最大效能設計。他的CPU效率可能是任何其他基於磁碟的關聯式資料庫引擎鎖不能匹敵的。
      • InnoDB儲存引擎完全與MySQL伺服器整合,InnoDB儲存引擎為在主記憶體中快取資料和索引而維持它自己的緩衝池。InnoDB將它的表和索引存在一個邏輯資料表空間中,資料表空間可以包含數個檔案(或原始磁碟分割)。這與MyISAM不同,比如在MyISAM表中每個表被存在分離的檔案中。InnoDB表可以是任何尺寸,即使在檔案尺寸被限制為2GB的作業系統上。
      • InnoDB支援外鍵完整性條件約束(FOREIGN KEY)。儲存表中的資料時,每張表的儲存都按主鍵順序存放,如果沒有顯示在表定義時指定主鍵,InnoDB會為每一行產生一個6B的ROW ID,並以此作為主鍵。
      • InnoDB被用在眾多需要高效能的大型資料庫網站上。
      • InnoDB不建立目錄,使用InnoDB時,MySQL將在MySQL資料目錄下建立一個名為ibdata1的10MB大小的自動擴充資料檔案,以及兩個名為ib_logfile0和ib_logfile1的5MB大小的記錄檔。
    • MyISAM儲存引擎  基於ISAM的儲存引擎,並對其進行了擴充。它是在Web,資料存放區和其他應用環境下最常使用的儲存引擎之一。MyISAM擁有較高的插入,查詢速度,但不支援事務。在5.5.5之前的版本中,MyISAM是預設儲存引擎,主要特點如下。
      • 大檔案(達63位檔案長度),在支援大檔案的檔案系統和作業系統上被支援。
      • 當把刪除,更新及插入操作混合使用的時候,動態尺寸的行產生更少片段。這要通過合并相鄰被刪除的塊,以及若下一個塊被刪除,就擴充到下一塊來自動完成。
      • 每個MyISAM表最大索引數是64,可以通過重新編譯來改變。每個索引最大的列數是16。
      • 最大的鍵長度是1000B,這也可以通過編譯來改變。對於鍵長度超過250B的情況,一個超過1024B的鍵將被用上。
      • BLOB和TEXT列可以被索引。
      • NULL值被允許在索引的列中,這個值占每個鍵的0~1個位元組。
      • 所有數字索引值以高位元組優先被儲存以允許一個更高的索引壓縮。
      • 每表一個AUTO_INCREMENT列的內部處理。MyISAM為INSERT和UPDATE操作自動更新這一列。這使得AUTO_INCREMENT列更快。在序列頂的值被殺出之後就不能再利用。
      • 可以把資料檔案和索引檔案放在不同目錄。
      • 每個字元列可以有不通的字元集。
      • 有VARCHAR的表可以固定或動態記錄長度。
      • VARCHAR和CHAR列可以多達64KB。
      • 使用 MyISAM引擎建立資料庫,將產生3個檔案。檔案的名字以表的名字開始,副檔名支出檔案類型:frm檔案儲存體表定義,資料檔案的副檔名為.MYD(MYData),索引檔案的副檔名是.MYI(MYIndex)
    • NEMORY儲存引擎  將表中的資料存放區到記憶體中,為查詢和引用其他表資料提供快速存取。MEMORY主要特性有:
      • MEMORY表的每個表可以有多大32個索引,每個索引16列,以及500B的最大鍵長度。
      • MEMORY儲存引擎執行HASH和BTREE索引。
      • 可以在一個MEMORY表中有非唯一鍵。
      • MEMORY表使用一個固定的記錄長度格式。
      • MEMORY不支援BLOB或TEXT列。
      • MEMORY支援AUTO_INCREMENT列和對可包含NULL值的列的索引。
      • MEMORY表支援所有用戶端之間共用(就像其他任何非TEMPORARY表)。
      • MEMORY表內容被存在記憶體中,記憶體是MEMORY表和伺服器在查詢處理時的空閑中建立的內部共用表。
      • 當不再需要MEMORY表的內容時,要釋放被MEMORY表使用的記憶體,應該執行DELETE FROM貨 TRUNCATE TABLE,或者刪除整個表(使用DROP TABLE)。
    • 儲存引擎的選擇,各種引擎比較

       

      • 如果要提供提交,復原和崩潰恢複能力的事務安全(ACID相容)能力,並要求實現並發控制,InnoDB是個很好的選擇。
      • 如果資料表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率;
      • 如果只是臨時存放資料,資料量不大,並且不需要較高的資料安全性,可以選擇將資料存在記憶體中的Memory引擎,MySQL中使用該引擎作為暫存資料表,儲存查詢的中間結果。
      • 如果只有INSERT和SELECT操作,可以選擇Archive引擎,Archive儲存引擎支援高並發的插入操作,但本身並不是事務安全的。Archive儲存引擎非常適合儲存歸檔資料,如記錄日誌資訊可以使用Archive引擎。

 

MySQL資料庫的基本操作 學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.