MySQL有很多種儲存引擎,針對不同的應用,可以為每張表選擇合適的儲存引擎,這樣有助於提升MySQL效能。
建立新聞表news:
複製代碼 代碼如下:CREATE TABLE `sandbox`.`news`
(
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL ,
`content` VARCHAR(45) NULL ,
`created` VARCHAR(45) NULL ,
PRIMARY KEY (`id`)
) ENGINE = MyISAM;
注意,MySQL大小寫敏不敏感,是由你所使用的平台決定的,在Windows下,Mysql大小寫不敏感;在Linux平台下,MySQL大小寫敏感。
最後一句SQL語句ENGINE=“儲存引擎名”,就是為表選擇儲存引擎,MySQL允許我們在建立表的時候選擇不同的儲存引擎,那麼MySQL到底都有哪些儲存引擎呢?
MySQL儲存引擎包括:MyISAM引擎,MyISAM Merge引擎,InnoDB引擎,Memory引擎,Archive引擎,CSV引擎,Federated引擎,Blackhle引擎,NDB Cluster引擎,Falcon引擎,SolidDB引擎,PBXT引擎,
Maria引擎和其它引擎。建表時,選擇合適的儲存引擎很重要,如果到後期再更換將會很麻煩。這裡,我們只介紹常用的三種儲存引擎:
MyISAM引擎
MyISAM引擎是MySQL預設的儲存引擎,MyISAM不支援事務和行級鎖,所以MyISAM引擎速度很快,效能優秀。MyISAM可以對整張表加鎖,支援並發插入,支援全文索引。
如果你不需要事務支援,通常我們建表時都選用MyISAM儲存引擎,像新聞表之類都沒有必要支援事務。
InnoDB引擎
InnoDB是專為事務設計的儲存引擎,支援事務,支援外鍵,擁有高並發處理能力。但是,InnoDB在建立索引和載入資料時,比MyISAM慢。
涉及到貨幣操作一般都需要支援事務,什麼都能錯,錢不能出錯。
Memory引擎
記憶體表,Memory引擎將資料存放區在記憶體中,表結構不是儲存在記憶體中的,查詢時不需要執行I/O操作,所以要比MyISAM和InnoDB快很多倍,但是資料庫斷電或是重啟後,表中的資料將會丟失,表結構不會
丟失。如果你需要將SESSION資料存在資料庫中,那麼使用Memory引擎是個不錯的選擇。
通常,我們使用這三種儲存引擎就夠了,更多的介紹請查閱MySQL手冊。