在mysql上使用日志表的最佳存储引擎是什么?
该表将有一对if字段(int),一个日期字段,一个用于消息级别的varchar和一个带有该消息的文本字段.
它将记录所有类型的事物,用户操作,系统事件等.预计它会迅速增长.
其中的记录永远不会被修改,很少被访问.访问时,应按日期级别和ID进行排序.
一个有趣的选项是归档引擎.它符合所有标准,但有一个很大的缺点,不仅不能删除记录,甚至不能清除表.清除表的唯一方法是删除它并重新创建它.
有什么建议?
Sav*_*ova 27
那么,根据你的问题,InnoDB应该做的工作是因为:
编辑
那么,你在评论中询问其他引擎.这是一个完整的引擎列表.其中,如你所说存档有缺点,其他不适合你的要求.这是来自MySQL网站的报价:
InnoDB has been designed for maximum performance when processing large data volumes.
Its CPU efficiency is probably not matched by any other disk-based relational database
engine.
Run Code Online (Sandbox Code Playgroud)
所以基本上:
说实话,我曾经花了很多时间才开始编码.我研究了几个小时,也许是几天关于一个问题,看看哪种方式最合适.我会告诉你什么,研究是好的,但是在一点之后,如果它阻止你工作,那么你应该停下来,喝一杯咖啡,然后马上做出选择.因此,只要尝试最合适的一个,就像你将体验到的那样,通过自己尝试,你会发现更好的方法.我的意思是,我不认为Facebook是为这样的音量设计的,但随着它的发展,它们继续相应地改变结构.这就是我所相信的,可能不是现实:)无论如何,希望信息可以帮助你.
编辑2013
您将在下面找到内置MySQL存储引擎的简要说明.
MyISAM数据
这些表包括其他优化,例如高级缓存和索引机制,可以快速访问数据.使用表级锁定,MyISAM存储引擎提供并发操作.当阅读性能受到关注时,通常,MyISAM是您的选择.
记忆
内存表也称为堆表,非常适合快速检索很少更改的常用数据(例如国家/地区代码,邮政编码或其他查找表).顾名思义,数据存储在内存中,因此访问速度比存储在磁盘中的数据快得多.使用内存的一个重要限制是数据在MySQL会话期间有效.当它崩溃或关闭时数据丢失.
InnoDB的
当您需要使用外键或事务时,必须使用此存储引擎的一种情况.InnoDB比MyISAM更并发,因为它提供行级锁定.存储引擎非常可靠.当您想要使用此存储时,另一种情况是您有更多写入而不是读取.当您经常将数据写入表中时尝试使用此存储,它比MyISAM更并发.
档案
它旨在以压缩格式存储大量数据.此存储引擎的一个用例是存储归档或历史数据或安全日志.该表不使用索引,因此对于日常数据检索和存储,它不是一个好的选择.它是行级锁定,数据在需要时即时解压缩.而且,改变桌子是不可能的.
合并
合并用于"合并"驻留在同一台计算机上的分区表.将大表拆分为多个较小的表并使用合并表同时访问它们时,最大的好处是它的速度.由于表中的数据较少,因此搜索和排序会更快.