Мне нужен совет по таблице поиска MySQL

Мне нужен совет по таблице поиска MySQL

У меня есть база данных MySQL с примерно 200 таблицами. 50 из них — небольшие таблицы поиска 'id-data' с 2 полями. Несколько из этих баз данных размещены на общем сервере. Мне сообщили, что мне нужно уменьшить общее количество таблиц в среде общего хостинга из-за проблем с производительностью, связанных со слишком большим количеством таблиц.

Мой вопрос: можно/нужно ли объединить 50 таблиц поиска по 2 поля в одну таблицу из 3 полей с полями 'id-field_name-data'? Даже если это можно сделать, мне придется много работать над пользовательским приложением PHP. Мой другой выбор — перенести БД на выделенный сервер с гораздо более высокой стоимостью хостинга.

Я не верю, что мои 200 таблиц БД действительно вызывают какие-либо проблемы с производительностью на этом сервере общего хостинга, по крайней мере, с точки зрения пользовательского приложения. В одном запросе никогда не объединяются более 10 таких таблиц; хотя я видел несколько очень медленных запросов, сгенерированных phpmyadmin на этих БД.

решение1

Вы можете использовать подход «id-field-data» при соблюдении следующих условий:

1- Ваши таблицы не содержат слишком много записей. Поэтому итоговая таблица НЕ будет слишком большой.

2- Создание индекса по fieldполю для ускорения поиска.

3. Изменить PHP-код несложно, и вы можете сделать это управляемым способом, не нарушая его работу.

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

Связанный контент