如何计算mysql数据库中的表?

时间:2011-10-11 10:52:32

标签: php mysql database

我正在使用MySQL v。 5.0.77 ,我想知道是否可以计算数据库中的表数。我已经做了很多研究,但我找不到一种不折旧的方法。

对于每个注册的用户,我都在数据库中为他们生成了一个表。而现在我正试图获得这些表的实时计数,如果这是有道理的。这是存储用户信息的合理方式吗?我无法以编程方式在我的服务器上创建整个数据库。

5 个答案:

答案 0 :(得分:12)

您可以查询information_schema.tables

SELECT COUNT(*) FROM information_schema.TABLES
WHERE TABLE_SCHEMA='$database_name';

答案 1 :(得分:2)

你可以这样做:

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='YOUR_DB_NAME_HERE'

答案 2 :(得分:2)

  

对于每个注册的用户,我都在数据库中为他们生成了一个表。而现在我正试图获得这些表的实时计数,如果这是有道理的。这是存储用户信息的合理方式吗?

如果您为每个用户创建一个单独的表,那么可能不是。有更好的方法来存储数据和关系,这可能会更复杂,但稍后会提供更多的灵活性,能力和可扩展性。

我认为您可能正在尝试在编程中重现数据库的功能,例如获取用户列表需要您在每个用户表上运行查询。

我建议您查看database designdatabase normalization(尝试关注如何最好地存储数据的概念,而不会陷入具体细节)。

答案 3 :(得分:1)

我不知道这是否比ajreal的答案慢,但我一直在使用:

$sql = "SHOW TABLES";
$res = mysql_query($sql);
$num_tables = mysql_num_rows($res); 

答案 4 :(得分:0)

打开终端,然后输入use myDB,然后输入show tables; 它将为总表数47 rows in set (0.00 sec)

提供总表名称和最后一行

或输入以下查询

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='myDB'