InnoDB是MySQL中的一種存儲(chǔ)引擎,由Innobase OY公開(kāi)發(fā)布。與其他的MySQL存儲(chǔ)引擎相比,InnoDB支持ACID事務(wù)等關(guān)系型數(shù)據(jù)庫(kù)的特性,同時(shí)也支持高并發(fā)性和高可用性的需求。在MySQL 5.5版本中,InnoDB成為默認(rèn)的存儲(chǔ)引擎。
與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)類(lèi)似,InnoDB通過(guò)B+樹(shù)索引在磁盤(pán)上存儲(chǔ)數(shù)據(jù),但是使用了行級(jí)鎖(Row-level locking),代替了傳統(tǒng)的表級(jí)鎖(Table-locking)。這樣,在高并發(fā)的情況下,InnoDB可以實(shí)現(xiàn)更好的資源利用率和高可用性。
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如上所示,在建立表時(shí)可以指定使用InnoDB存儲(chǔ)引擎。值得注意的是,InnoDB在MySQL 5.5中成為默認(rèn)存儲(chǔ)引擎后,官方對(duì)于InnoDB在MySQL中的應(yīng)用也提供了更大程度的支持,它與其他的存儲(chǔ)引擎相比,具有更好的性能以及更全面的支持。對(duì)于需要應(yīng)對(duì)高并發(fā)量的企業(yè)和網(wǎng)站,采用InnoDB存儲(chǔ)引擎是一個(gè)非常明智的選擇。