Как можно подсчитать таблицы в базе данных mysql?

#php #mysql #database

#php #mysql #База данных

Вопрос:

Я использую MySQL v.5.0.77, и мне было интересно, можно ли подсчитать количество таблиц в базе данных. Я провел много исследований и не могу найти способ сделать это, который не обесценивается.

Для каждого пользователя, который регистрируется, я сгенерировал для них таблицу в базе данных. И теперь я пытаюсь получить текущий подсчет этих таблиц, если это имеет смысл. Является ли это логичным способом хранения пользовательской информации? Я не могу программно создавать целые базы данных на своем сервере.

Ответ №1:

Вы можете выполнить запрос к information_schema.tables

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

Ответ №2:

Вы могли бы сделать это так:

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

Ответ №3:

Для каждого пользователя, который регистрируется, я сгенерировал для них таблицу в базе данных. И теперь я пытаюсь получить текущий подсчет этих таблиц, если это имеет смысл. Является ли это логичным способом хранения пользовательской информации?

Если вы создаете отдельную таблицу для каждого пользователя, то, вероятно, нет. Существуют лучшие способы хранения данных и связей, которые могут быть более сложными для изучения, но в дальнейшем обеспечат гораздо большую гибкость, возможности и масштабируемость.

Я думаю, вы, вероятно, пытаетесь воспроизвести функциональность базы данных в своем программировании, например. получение списка пользователей потребует от вас выполнения запроса к каждой отдельной таблице пользователей.

Я рекомендую вам взглянуть на проектирование базы данных и нормализацию базы данных (постарайтесь сначала сосредоточиться на концепции наилучшего хранения данных, не увязая в специфике).

Ответ №4:

Я не знаю, работает ли это медленнее, чем ответ ajreal, но я использовал :

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

Ответ №5:

Откройте терминал и введите use myDB , затем show tables; он выдаст вам общее название таблиц и последнюю строку в качестве общего количества таблиц 47 rows in set (0.00 sec)

Или введите запрос ниже

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