#mysql
#mysql
Вопрос:
Я готовлю одну страницу с поисковым запросом в существующей базе данных, которая была передана мне.
База данных исправлена. Вставка / редактирование / обновление не произойдет. только поиск.
Существует 160 баз данных, все они имеют одинаковые структуры. единственное различие между каждой базой данных — это язык (диалект) ее содержимого. Каждая база данных является переводом другой.
Каждая база данных имеет 3 таблицы. 2 из этих таблиц предназначены исключительно для информации / справки. информация о базе данных. В поиске будет задействована только 1 таблица.
В этой таблице 3 столбца.
index(int11,primary), content(text), contentid(int11)
Вот моя забота
Значения index
столбца индекса представляют собой порядковый номер, начиная с 1
contentid
имеет уникальное содержимое, но не задано как unique
в базе данных
Я планирую удалить index
столбец и использовать contentid
в качестве primary
и установить его unique
.
улучшит ли это производительность?
Сотни пользователей будут использовать это одновременно каждый сеанс, и я нахожусь на общем хосте.
Комментарии:
1. Зачем иметь так много баз данных? Разве вы не можете просто завести языковую колонку?
2. Нет, этого не произойдет. В этом случае, поскольку вы сказали, что изменений в базе данных не будет, используйте программу кэширования sql, такую как memcached, и кэшируйте свои запросы. Убедитесь, что ваши таблицы правильно проиндексированы, и, честно говоря, вы могли бы перейти на nosql для хорошего увеличения производительности.
3. а также, откажитесь от общего хостинга, запустите vpn на digital ocean, это намного дешевле, и у вас есть полный контроль..
4. Удаление одного целочисленного поля редко оказывает какое-либо влияние на производительность.
5. @user3783243 получу ли я значительную производительность при объединении в одну базу данных? каждая БД имеет 40 тыс. строк.