mysql的學習(一)之mysql性能的影響因素

硬件配置

  • cpu,可使用內存myIsam會把索引緩存到內存中,數據交給操作系統,而innodb會在內存中存儲索引和數據
  • 硬盤固態存儲和PCIe卡
  • 網絡存儲SAN和NAS

mysql體系結構

特點:插件式存儲引擎,可針對每個表配置

myISAM 存儲引擎

5.5版本之前的默認。MyISAM存儲引擎表由MYD(存儲數據)和MYI(存儲索引)組成。

特性:

  • 使用表級別鎖
  • 表的檢查與修復,check table tablename /repair table tablename
  • 支持數據壓縮(myisampack)和全文索引。壓縮後的表只能讀不能寫。

適用場景:

  • 非事務型應用
  • 只讀類應用

Innodb存儲引擎

5.5版本之後的默認。使用表空間進行數據存儲。innodb_file_per_table   on:獨立表空間tablename.ibd  off:系統表空間ibdataX

獨立表空間可以通過optimize table命令收縮系統文件

特性:

  • 支持事務的ACID
  • 支持行級別鎖,存儲引擎實現的
  • redo log 和 undo log

CSV存儲引擎

數據以文本方式存儲在文件中。.csv文件存儲表內容。.csm文件存儲表的元數據如表狀態和數據量。

特性:

  • 所有列必須都是不能爲null
  • 不支持索引,可以對數據文件直接進行編輯

使用場景:作爲數據中間表

Archive存儲引擎

以zlib對錶數據進行壓縮磁盤io更少。數據存儲在ARZ文件中

特性:

  • 只支持insert和select
  • 只允許在自增id上建立索引

使用場景:日誌和數據採集類應用

Memory存儲引擎

也稱爲HEAP存儲引擎。數據存在內存中。表數據丟失但是表結構不會丟失。

特性:

  • 支持hash(等值查找)索引和btree(範圍查找)索引
  • 所有字段都爲固定長度varchar10=char10
  • 不支持BLOG和TEXT等大字段
  • 使用表級別鎖

使用場景:用於查找或者是映射表,用於保存數據分析中產生的中間表。用於緩存週期性聚合函數的結果表。用於數據容易丟失可再生。

如何選擇正確的存儲引擎

  • 事務
  • 在線備份
  • 崩潰恢復
  • 存儲引擎的特有屬性

mysql服務器參數

查看使用配置文件的順序

mysqld --help --verbose | grep -A 1'default options '

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章