项目遇到的一个bug:
存储实时数据(多张表存放不同类型的数据),当时查看资料觉得选用Archived数据引擎。
后来根据项目需要 需要定时删除实时数据。所以我写了个存储过程用于删除。
项目运行后 调用此存储过程报错。原因可能为 Archived 不支持储存过程。将表引擎改为InnoDB后 成功运行
mysql 引擎介绍
如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择
如果数据表主要用来插入和查询记录,读操作明显多于写操作,存储量较大,则MyISAM引擎能提供较高的处理效率
如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果
如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive
使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能