MySQL InnoDB获得有效的行数

我有一个很大的数据库表。 我需要确切知道该表在很短的时间内包含多少行。 用户将在我网站的每个页面上每次都请求该号码。 这不是一个罕见的要求。

我有以下方法:

  1. 使用主键,因此使用MAX(id),我已经有了行数。但这是O(n)。在我的表上,> 1mio的行速度很慢。
  2. 每当插入项目时,我都可以在文本文件中增加一个数字
  3. 我可以切换到MyISAM,因为它可以保存行数COUNT,但是问题是选择速度较慢。在我的应用中,我主要选择大量金额。
  4. SELECT COUNT(*)FROM table / SELECT * FROM table ORDER BY id DESC LIMIT 1;
  5. 但是对于非常大的数据库表,它们非常缓慢或混乱。

我应该使用哪种方法,或者有更好的方法?