MySQL資料庫最佳化(一)—MySQL引擎

黄舟
發布: 2017-02-27 13:40:55
原創
1348 人瀏覽過

一、MySQL引擎類型
(一)、InnoDB
1、InnoDB簡介
     InnoDB是my預設引擎,支援事務,in的資料儲存在表空間(tablespace)中,透過間隙鎖(next-key locking)防止幻讀。
2、InnoDB特點
   (1)In內部做了許多最佳化,in基於叢集索引建立表,對主鍵查詢有很高的效能。
   (2)讀取資料時,能夠在記憶體中建立hash索引加速插入緩衝區,讀取資料時採取可預讀。
   (3)支援熱備份,my其他引擎不支援此功能。
(二)、MyISAM
1、MyISAM簡介
     MyISAM是my5.1之前版本的預設引擎,支援全文索引、壓縮、空間函數,但不支援事務及行級鎖,適用於唯讀取資料、表小可忍受修復操作的應用場景。
2、MyISAM特點
  (1)MyISAM儲存將表格存放到兩個檔案:資料檔案和索引檔案。
  (2)MyISAM支援對整張表進行加鎖,但不支援行加鎖。
  (3)MyISAM壓縮表,針對某些不再修改的表數據,使用MyISAM將表進行壓縮,以減少磁碟I/O操作,提高查詢效率。
(三)、CSV
     CSV引擎可將普通的CSV檔案當作Mysql表處理,在資料庫執行時拷入拷出文件,另外也可將excel等形式檔案轉儲成CSV,再透過Mysql的CSV引擎處理成mysql表類型。作為一種資料交換機制,非常實用。
(四)、Memory
     Memory引擎是將所有的資料儲存到記憶體中,不需要磁碟I/O,它所儲存的資料主要是儲存和尋找資料處理時的中間數據,重啟數據就清空。如果Mysql執行過程中,需要臨時表來保存中間結果,內部使用的暫存表便是Memory表。
(五)、NDB Cluster 
     NDB叢集索引是mysql公司在收購了NDB資料庫後開發的,支援分散式、容災、高可用的資料庫索引。
二、引擎相關操作
1、查看mysql目前版本引擎
使用指令show enginses;查看mysql引擎
5.1版本中的mysql 引擎:

5.7版本中的mysql 引擎(可透過mysql客戶端執行指令查看):

2、指定mysql引擎
方法一:修改my.cnf設定檔

      (1)如果不太清楚mysql的my.cnf設定檔存放位置,可透過sudo find /-name my.cnf查找該檔案路徑。

      (2)修改如下:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

default-storage-engine=MyISAM
登入後複製

#      ( 3)使用service mysqld start 指令,重新啟動mysql服務;查看engine型別

2、在建立函式庫/表時指定引擎
     CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB
     ALTER TABLE mytable ENGINE = MyISAM
 

 以上就是MySQL資料庫最佳化(一)—MySQL引擎 的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!