首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于日志表的Mysql存储引擎

用于日志表的Mysql存储引擎
EN

Stack Overflow用户
提问于 2011-12-02 07:17:45
回答 1查看 8.4K关注 0票数 17

在mysql上创建日志表最好的存储引擎是什么?

该表将有两个if id字段(Int)、一个日期字段、一个用于消息级别的varchar和一个包含消息的文本字段。

它将记录所有类型的事情,用户操作,系统事件等。预计它将迅速增长。

其中的记录永远不会被修改,也很少被访问。访问时,应该可以按日期、级别和id进行排序。

一个有趣的选项是存档引擎。它满足所有条件,但有一个很大的缺点,不仅不能删除记录,甚至不能清除表。清除该表的唯一方法是删除它并重新创建它。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-02 07:25:31

嗯,根据你的问题,InnoDB应该做这项工作,因为:

  1. 它的可扩展性比MyISAM
  2. 的行锁要好得多,因此,如果您打算使用比select更多的写操作,那么它非常适合better.
  3. Finally,,因为您说过它们很少被访问,所以不需要使用MyISAM,因为它在select查询上更好。

Check this for more information

编辑

好的,在评论中你问到了其他引擎的情况。这是一个引擎的full list。其中,正如你所说的归档有一个缺点,其他的不适合你的要求。以下是MySQL网站上的一段话:

代码语言:javascript
复制
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.

所以基本上:

  1. ,如果您要使用内存,请不要像您所说的那样,您将不会访问大量数据,并且您的表将会增长太多。你需要很多内存,当你重新启动时,所有的数据都会丢失。
  2. 如果你要使用MyISAM,请不要这样做,因为它是为那些select查询比insert和update更频繁的表而设计的。
  3. 对于归档,这是你的选择。Here是日志表的MyISAM和archive的比较。
  4. 我甚至不会提及Merge,InnoDB,Example和其他引擎。(我对CSV引擎了解不多,但据我所知,这不是一个适用于这种表格的引擎。

老实说,在进行重要的编码之前,我曾经花了很多时间。我对一个问题研究了几个小时,甚至几天,看看哪种方式最合适。我要告诉你的是,研究是很好的,但到了一定程度,如果它阻碍了你的工作,那么你应该停下来,喝一杯咖啡,然后立即做出选择。因此,只要尝试最适合你的方法,你就会通过尝试自己,找到更好的方法。我的意思是,我不相信Facebook是为这么大的规模而设计的,但随着它的增长,他们继续相应地改变着结构。这是我所相信的,但可能不是现实:)无论如何,希望这些信息能帮助你。

编辑2013年

在下面你可以找到关于内置MySQL存储引擎的简要描述。

MyISAM

这些表包括额外的优化,例如高级缓存和索引机制,它们提供了对数据的快速访问。使用表级锁定,MyISAM存储引擎提供并发操作。当需要考虑读取性能时,通常会选择MyISAM。

内存

内存表也称为堆表,非常适合于快速检索很少更改的常用数据(例如国家代码、邮政编码或其他查找表)。顾名思义,数据存储在内存中,因此访问速度比存储在磁盘中的数据快得多。使用内存的一个重要限制是数据在MySQL会话期间是有效的。当它崩溃或关闭时,数据就会丢失。

InnoDB

在需要使用外键或事务的情况下,必须使用此存储引擎。InnoDB比MyISAM更具并发性,因为它提供行级锁定。存储引擎高度可靠。当您想要使用此存储的另一种情况是当您的写入多于读取时。当您频繁地向表中写入数据时,请尝试使用这种存储,因为它比MyISAM更并发。

归档

它专为以压缩格式存储大量数据而设计。此存储引擎的用例之一是存储存档或历史数据或安全日志。该表不使用索引,因此对于日常数据检索和存储,它不是一个好的选择。它的行级锁定和数据在需要时被动态解压缩。此外,更改表是不可能的。

合并

Merge用于“合并”驻留在同一台机器上的已分区表。当您将一个大表拆分为几个较小的表,并使用合并表同时访问它们时,最大的好处就是它的速度。搜索和排序将执行得更快,因为表中的数据更少。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8349752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档