一、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)!