我真的很难确定这个数据库需要多少内存。目前,这是一个主要由文本内容填充的表,有 +40k 个条目。
mysql> show table status;
+-------+--------+---------+------------+-------+----------------+-------------+-------- ---------+--------------+-----------+----------------+---------------------+---------------- -----+------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+-------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| links | MyISAM | 10 | Dynamic | 44135 | 76235 | 3364651760 | 281474976710655 | 454656 | 0 | 88275 | 2010-06-30 12:33:00 | 2010-07-01 14:41:56 | NULL | latin1_swedish_ci | NULL | | |
+-------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------- -----+------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)
为避免您感到困惑 - 虽然现在还不是 4GB,但很快就会有了。我有一台服务器,我想把它放在有 512MB RAM 的服务器上 - 这够用吗,还是我需要升级?
大多数查询将根据唯一键选择一行。可以将其想象为一个包含 40k 以上文章的博客。
有公式吗?我的索引似乎只有 1/2 MB 左右 —— 这就是需要保留在内存中的全部内容,对吗?
答案1
我认为你应该没问题。如果索引可以容纳(并保留)在内存中,那么这应该足以获得相当不错的性能,前提是你没有处理巨大的请求负载或任何其他事情。
答案2
我会说不。MySQL 只有在拥有大型查询缓存的情况下才能发挥最佳性能。512 在当今算不上什么。对于这种大小的数据库来说更是如此,即使你没有进行大量复杂的连接
答案3
我有一个只有 150 mb 的 mysql 数据库,用于电子商务网站,每天有 1000 名访客,我需要 1 gb 的服务器。该数据库在查询中结构非常复杂,但这对我来说已经足够了,我建议你至少使用 2gb 的内存。