MySQL数据库问题 – 增长太快,性能

我的数据库设置有一些问题:MySQL数据库每隔几秒就会写入一次,而且数据库的大小会很快增长。 我的磁盘空间有限,所以我必须解决这个问题。 但是,数据不应该那么大。 它是DOUBLEtypes的3个元组和写入数据库的auto_increment主键。 它已经包含了大约12M行(在一张桌子里!)。 服务器只有512MB的RAM,查询时间很长。

现在,每次我mysqldump数据库时,转储文件都比数据库本身小。 那个怎么样? 我应该删除所有外键关系,以提高性能? 有没有办法通过多个服务器分发数据库?

提前致谢。

mysqldump将数据作为文本输出,所以数据的大小几乎总是与表大小不同。 你看到的表格的大小也可能包括索引,不会被倾倒。

转储可能更小,因为索引不在转储和数据可能相对较短,即1.24而不是168535.186434965355732。 如果数据很短,可能会对您的转储产生巨大影响。 DOUBLE数据types使用8个字节。 所以在表中, 1.2需要8个字节,但是在转储中,只需要3个字符(它是3个文本字符)。

对于数据库的性能来说,可能有很多工作可以完成,但究竟可以做什么取决于你的系统。 EXPLAIN你的主要查询,以确保他们正在使用索引。 我相信在大多数情况下,外键对性能不利。 如果你可以相信任何使用你的数据库不input错误的值,你可能不需要它们。 任何时候插入子外键列时,服务器都必须检查父项以确保新值是有效的,这可能不会造成巨大的性能影响,但通常不是必需的。

你可能会提到它,如果你这样做,但通常压缩垃圾,因为它们是高度可压缩的(通常与gzip的原始大小的10-20%)。 这将导致转储显着变小。

是的,有一种方法可以在多台服务器上进行分发,但是很大程度上取决于您希望的规模

至less应该让你开始