Самый эффективный способ сделать этот скрипт PHP

0

У меня есть любое количество пользователей в базе данных (это может быть 100, 2000 или 3), что я делаю, это использование mysql "show tables" и сохранение имен таблиц в массиве, тогда я запускаю while и принимая каждое имя таблицы (имя пользователя) и вставляя его в некоторый код, я запускаю указанный фрагмент кода для каждого имени таблицы. С 3 пользователями этот script занимает около 20 секунд. Он использует API Twitter и выполняет некоторые вставки mysql. Это самый эффективный способ сделать это или нет?

  • 0
    Таким образом, каждый пользователь получает свою таблицу?
  • 0
    да это не правильно? Я не хотел смешивать пользователей в одной таблице
Показать ещё 8 комментариев
Теги:

3 ответа

5
Лучший ответ

Конечно, нет!

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

Он будет работать через 0,0001 секунды.

Update:

В таблице есть строки и столбцы. Вы можете хранить несколько пользователей в строках и информацию о каждом пользователе в столбцах.

Попробуйте несколько учебников/книг по дизайну базы данных, они помогут вам многое.

  • 0
    Я сделал это таким образом, потому что у каждого пользователя есть столбец с именем tweet_id и твит. как бы это сделать, но с одной таблицей под названием пользователи ??
  • 0
    Я расскажу об этом и просто добавлю, рассмотрим общий дизайн базы данных. Это может удивить некоторых других разработчиков, но на самом деле я слышал о других, кто придумал эту идею дизайна раньше. Честно говоря, я не уверен, где эта идея проистекает из отсутствия понимания окружающих соединений между таблицами, но, увы, это абсолютно лучший ответ. Я не могу представить ни одной производственной системы в мире, которая бы создавала таблицы для каждого пользователя. Это безумие.
0

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

Я бы, конечно, пошел за одной таблицей пользователей.

  • 0
    ОК, это звучит хорошо. Я полагаю, гораздо лучше, чем таблица для каждого
0

Базы данных оптимизированы для обработки многих строк; некоторые из используемых методов - это индексы, физическое расположение данных на диске и т.д. Операции на многих таблицах всегда будут медленнее - это просто не то, что были созданы RDBMS.

Существует одно исключение - иногда вы оптимизируете базы данных путем разбиения (данные разбиения), но этот подход имеет столько же преимуществ, сколько недостатков. Один из недостатков заключается в том, что запросы, подобные тем, которые вы описали, занимают много времени.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню