如何计算MySQL数据库中的表格数量?

4
我正在使用MySQL v.5.0.77,想知道是否能够计算数据库中的表数。我已经做了很多研究,但找不到不过时的方法来实现这个目标。
对于每个注册用户,我在数据库中生成了一个表格。现在我正在尝试获取这些表格的实时数量,如果这有意义的话。这是存储用户信息的逻辑方式吗?我无法在我的服务器上以编程方式创建整个数据库。
5个回答

12

你可以对 information_schema.tables 进行查询。

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

2

2
对于每个注册的用户,我已经在数据库中为他们生成了一个表。现在我正在尝试获取这些表的实时计数,如果有意义的话。这是存储用户信息的逻辑方式吗?
如果您为每个用户创建单独的表格,那么可能不是最好的方式。有更好的方法来存储数据和关系,虽然学习起来可能更加复杂,但以后会提供更大的灵活性、能力和可扩展性。
我想您可能正在尝试在编程中复制数据库的功能,例如获取用户列表需要在每个单独的用户表格上运行查询。
我建议您先看一下数据库设计和数据库规范化(尝试专注于如何最好地存储数据的概念,而不要陷入具体细节)。

1

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

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

0
打开终端,输入use myDB,然后输入show tables;。它会给出所有表的名称和最后一行的总表数47 rows in set (0.00 sec)
或者输入以下查询。
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='myDB'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接