У меня есть любое количество пользователей в базе данных (это может быть 100, 2000 или 3), что я делаю, это использование mysql "show tables" и сохранение имен таблиц в массиве, тогда я запускаю while и принимая каждое имя таблицы (имя пользователя) и вставляя его в некоторый код, я запускаю указанный фрагмент кода для каждого имени таблицы. С 3 пользователями этот script занимает около 20 секунд. Он использует API Twitter и выполняет некоторые вставки mysql. Это самый эффективный способ сделать это или нет?
Конечно, нет!
Я не понимаю, почему вы храните каждого пользователя в своей таблице. Вы должны создать таблицу users
и выбрать оттуда.
Он будет работать через 0,0001 секунды.
Update:
В таблице есть строки и столбцы. Вы можете хранить несколько пользователей в строках и информацию о каждом пользователе в столбцах.
Попробуйте несколько учебников/книг по дизайну базы данных, они помогут вам многое.
Если вы беспокоитесь о сохранении нескольких записей для каждого пользователя в одной таблице пользователей, вы можете иметь отдельную таблицу для твитов с tweet_id, ссылающейся на пользователя.
Я бы, конечно, пошел за одной таблицей пользователей.
Базы данных оптимизированы для обработки многих строк; некоторые из используемых методов - это индексы, физическое расположение данных на диске и т.д. Операции на многих таблицах всегда будут медленнее - это просто не то, что были созданы RDBMS.
Существует одно исключение - иногда вы оптимизируете базы данных путем разбиения (данные разбиения), но этот подход имеет столько же преимуществ, сколько недостатков. Один из недостатков заключается в том, что запросы, подобные тем, которые вы описали, занимают много времени.
Вы должны поместить всех своих пользователей в одну таблицу, потому что с логической точки зрения они представляют собой одну сущность.