程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql存儲引擎的一點學習心得總結

mysql存儲引擎的一點學習心得總結

編輯:MySQL綜合教程

mysql存儲引擎的一點學習心得總結


首先我們應該了解mysql中的一個重要特性——插件式存儲引擎,從名字就可以看出在mysql中,用戶可以根據自己的需求任意的選擇存儲引擎,實際上也是這樣,即使在同一個數據庫中,不同的表也可以使用不同的存儲引擎。Mysql中支持的存儲引擎有很多種,這個可以去baidu或者google,本文主要說兩種比較常用的存儲引擎,myisam和innodb。 myisam的特點是 1)索引和數據分開存儲,myisam有三個文件(.frm文件,存儲表定義;.MYI存儲索引 my index; MYD存儲數據 my data) 2)不支持事務以及外鍵 3)支持全文索引 4)支持數據壓縮(myisam支持3種不同存儲格式,靜態表,動態表,壓縮表) 5)Select和Insert效率較高,所以一般以Select和insert為主的應用使用myisam存儲引擎。 6)表鎖
innodb的特點 1)支持外鍵和事務 2)如果很多是update和delete操作,那麼選擇innodb是合適的。 3)數據和索引存儲在一起。 4)innodb不支持全文索引 5)InnoDB 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含 where條件時,兩種表的操作是一樣的。 6)行級鎖
在對於字符串存儲的時候,如果是myisam建議使用固定長度數據列 如果使用innodb,建議使用varchar數據類型
================================華麗分割線===================================================
下面簡單提一下mysql中字符集的選擇
一般是這樣的,如果數據庫只是需要支持一般中文,那麼使用gbk就夠了,不需要使用uft8,原因是gbk一個漢字2個字節,utf8中一個漢字3個字節。 mysql的字符集有兩個概念,一個是字符集,一個是校對規則 字符集用來定義存儲字符串的方式 校對規則用來定義字符串的比較方式 如果校對規則是ci(比較時,大小寫不敏感) cs(比較時大小寫敏感),bin(二元,和字符編碼有關)
如何修改一個數據庫中的字符集呢? 如果沒有數據,直接修改就是,但是如果數據庫中已經存在數據,那麼如何修改字符集呢? 1)導出表結構 2)手動修改導出的表結構(一個sql文件A.sql) 3)導出所有記錄(B.sql) 4)修改B.sql中的set names utf8 5)使用新的字符集創建數據庫 6)創建表 7)導入數據

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved