对于正在开发的Web应用程序,我需要存储大量记录。每条记录将由一个主键和一个(短)字符串值组成。我希望有大约100GB的可用存储空间,并希望能够全部使用。
记录将被插入,删除和频繁读取,并且我必须使用MySQL数据库。数据完整性不是关键,但性能至关重要。我可能会遇到什么问题和陷阱,哪种存储引擎最适合该任务?
非常感谢,
无论使用哪种解决方案,由于您说数据库将是大量写入操作,因此需要确保整个表不会在写入时被锁定。这排除了某些建议的MyISAM。MyISAM将在更新,删除或插入时锁定表。这意味着任何想要从表中读取的客户端都必须等待写入完成。但是,Dunno的INSERT LOW PRIORITY是做什么的,可能是一些围绕表锁定的技巧:-)
如果您仅必须使用MySQL,则需要InnoDB,它不会在写入时锁定。我不知道MySQL如何做VACUUM的InnoDB表(InnoDB是像PostgreSQL那样的MVCC,因此需要清理)…但是如果要进行大量更新或删除,则必须考虑到这一点。
问题内容: 我在MySql中有一个使用PhpMyAdmin管理的表。目前,它位于大约960,000行中。 我有一个老板喜欢查看Excel中的数据,这意味着我必须每周将数据导出到Excel中。 我正在寻找一种更有效的方法来执行此操作。由于我实际上不能一次完成整个表,因为它超时了。因此,我一直坚持将表“分块”成较小的查询,然后将其导出。 我曾尝试将Excel(和Access)直接连接到我的数据库,但是
我有一个需要50秒的查询 security_tasks中的记录=841321 relations中的记录=234254 我能做些什么让它快一点,比如快1秒或2秒 有什么想法吗?
问题内容: 我有一个关于MySql的问题。我有一个带有7.479.194记录的表。有些记录是重复的。我想这样做: 所以我会取出重复的条目…但是问题是这是大量数据。该表是MyIsam。 这是示例数据-我想按城市,short_ccode进行分组… 我想我必须为my.ini文件修改一些内存,以便按语句分组……哪些设置对此负责? 我有一台具有3bg RAM和2Ghz处理器的机器。 我的ini文件: 问题答
问题内容: 我在MySQL中有一个消息表,该表记录了用户之间的消息。除了典型的ID和消息类型(所有整数类型)之外,我还需要将实际消息文本另存为VARCHAR或TEXT。我将前端限制设置为3000个字符,这意味着消息插入数据库的时间绝不会超过此时间。 是否有理由使用VARCHAR(3000)或TEXT?只是编写VARCHAR(3000)有点不合常理。我曾经在Stack Overflow上浏览过其他类
问题内容: 我有一个php脚本,用于解析XML文件并创建一个看起来像这样的大型SQL文件: 这个文件加起来超过20GB(我已经在2.5GB的文件上进行过测试,但它也失败了)。 我已经尝试过类似的命令: mysql -u root -p table_name </var/www/bigfile.sql 这适用于较小的文件,例如大约50MB。但不适用于较大的文件。 我试过了: 我也尝试了mysqlim
我正在编写一个程序,使用Spring Batch处理MySQL数据库表中的7637064行。我成功地处理了较小的表,但当JdbcCursorItemReader尝试打开光标时,该表中的大量行导致了OutOfMemoryError异常。 我可能可以通过向它扔一个更大的Xmx来解决这个问题,但在我看来,Spring Batch应该有办法处理这个问题,我可能只是缺少一个关键的配置部分。 Spring批配