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手冊。