Подтвердить что ты не робот

Сколько строк в MySQL слишком много?

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

4b9b3361

Ответ 1

Наличие нескольких сотен тысяч строк отлично, если:

  • они правильно индексируются
  • и ваши запросы выполняются должным образом (например, с использованием нужных индексов)

Я работаю над приложением, которое делает много запросов на нескольких таблицах с несколькими сотнями тысяч записей в каждом, с объединением, а не с "простым" предложением where, и это приложение работает нормально - хорошо, так как мы 'оптимизировал запросы и индексы ^^


Несколько миллионов строк в этих условиях тоже в порядке, я бы сказал - зависит от того, какие запросы (и сколько из них) вы сделаете ^^


В каждом случае есть только один способ узнать наверняка:

  • Вы должны знать, какие запросы вы будете делать,
  • У вас также должен быть большой набор данных для тестирования,
  • И вам нужно провести сравнительный анализ: много раз запускать запросы в своем наборе данных с помощью concurrency, как будто в "реальных условиях" - и это поможет ответить на вопросы "будет ли он обрабатывать нагрузку" Мне нужно оптимизировать? Каковы узкие места?"

Ответ 2

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

Ответ 3

Если вам нужно просить ограничения, вы делаете это неправильно. Хотя вы описываете отношения "многие-ко-многим", что совершенно нормально.

Просто держите индексы в актуальном состоянии, и это не должно быть проблемой. У меня есть таблица в моей текущей базе данных, которая имеет 94k строк, и это достаточно быстро.

Несколько рекомендаций, чтобы сделать это быстрее, если вы знаете, как долго может быть ключевое слово, и оно не слишком велико, подумайте об использовании CHAR вместо VARCHAR, вы будете использовать больше места, но полностью заданную строку длины байтов на порядок быстрее, чем тот, который не является. При выполнении запросов получайте только то, что вам нужно, т.е. Limit/top и where clauses, и не используйте '*' в селекторе, если вам действительно не нужны все строки.

Ответ 4

как уже было сказано, прежде чем mysql не должен быть проблемой - я слышал о таблицах с буквально миллионами строк, не вызывающих проблем. Но имейте в виду, что петли php вокруг запросов mysql могут быть сложными, замедлять работу и даже завершать ваш script с ошибкой "timeout"!