Производительность поиска mysql - PullRequest
0 голосов
/ 10 марта 2019

просто как подтверждение, что лучше для поисковой системы в MySQL?Искать слова или цифры?

Давайте представим БД студентов.Должна ли быть таблица для студентов, другая для классов и другая для регистрации (которая свяжет учащихся с классами с их уникальным идентификатором) или просто таблица регистрации со всеми данными учащихся и именами классов?

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

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

Что будет лучше?Поиск в тысячах строк с идентификаторами и внутренним соединением или поиск в тысячах строк с именами и строками. С уважением,

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Простой ответ:

Избегайте несвязанных текстовых полей, когда это возможно, наряду с хорошей мерой индексации, зависящей от того, для чего будет использоваться ваша база данных (склад или производство), и применяйте 3NF всякий раз, когда это возможно...Не рекомендуется 3NF, если вы не уверены, что это влечет за собой, в то время как более 3NF может оказаться слишком сложным для вас, человека, чтобы всегда держать его под контролем.

0 голосов
/ 13 марта 2019

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

Итак, это неэффективно:

SELECT id  FROM students  WHERE name...             -- grab a bunch of ids
SELECT ... FROM foo  WHERE student_id IN (...) ...  -- then use them

Это лучше, даже если логически делает то же самое:

SELECT ...
    FROM students
    JOIN foo  ON foo.student_id = students.id
    WHERE name ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...