Java开发丨说说mysql的存储引擎,有什么区别?索引的介绍

MySQL存储引擎种类多,各有特色。
InnoDB支持事务,适合高并发写;MyISAM读快,写少场景佳。
MEMORY速度快,数据易丢失;ARCHIVE适合历史归档;CSV方便交换;BLACKHOLE用于日志;FEDERATED连接远程表;MERGE合并MyISAM表;NDB集群式高可用。
索引提速检索,但占空间,需优化。
选对引擎和索引,性能更上一层楼。

MySQL中重要的数据库存储引擎

InnoDB 这玩意儿啊,就是MySQL自带的那个。
它支持事务,就是那种能保证数据要么都变,要么都不变的东西,像银行转账那种。
它还支持行级锁定,意思是一会儿只改一行数据,不影响别的。
还能加外键,就是表跟表之间能扯关系。
服务器要是崩了,还能自己恢复过来。
适合那种要保证数据没错,还得能同时很多人读写的地方,像淘宝那种交易系统。

MyISAM 是老古董了,早期默认的。
它不支持事务,这个是硬伤。
但它表级锁定,就是一次改整个表,速度快。
特别适合读得多写得少的地方,像查日志那种。
全文索引它也有,适合搜关键词。
不过现在用得少了。

MEMORY 这玩意儿啊,数据全放内存里。
所以读读写写贼快,比硬盘快多了。
但服务器一关机,数据全没了,这个得记住。
适合临时表,或者数据不用保存,就快速用一下的情况。
像缓存就用这个。

说实话,这三个各有各的坑。
InnoDB 事务支持好,但慢点。
MyISAM 快,但数据可能错。
MEMORY 快得飞起,但没了就没了。
具体用哪个,得看你干嘛。
要是有钱搞内存,就用MEMORY。
要是要保证数据绝对对,就用InnoDB。
MyISAM 就随便用吧,别太重要的数据放它那儿。