Фриланс-проекты › Оптимизация базы данных Оптимизация базы данных
Имеется база данных на 2,5ГБ (12млн ссылок)
Таблица состоит из 7 столбцов
Id (int) index и unique
Link (tinytext)ссылка на страницу на сайте
Site (tinytext)сам сайт
Title (tinytext)заголовок на этой странице
Type (tinytext)тип заголовка( бывает H1 и H2)
Connected(tinytext) null или yes если заголовок был использован
IP(int) IP адрес сайта
Основной принцип работы системы, к которой относится БД
Система ставит ссылку на TITLE на одном SITE c типом Н2 на точно такой же TITLE с типом Н1 с другим SITE. По сути, связывая различные SITE через TITLE
Этапы работы:
Сначала через запрос
SELECT ID,TITLE,SITE,TYPE,LINK,IP FROM links GROUP BY TITLE HAVING count(distinct TYPE)>1 and TYPE = 'H1' and SITE = 'https://тут адрес сайта' я получаю все возможные TITLE с TYPE = H1 для конкретного SITE, для которых имеются H2 для будущей перелинковки
Далее я получаю все LINK с TYPE = H2 по данному TITLE и у которых SITE не равный адресу изначального SITE
Перелинковываю уже на сайте( БД не учавствует) и делаю update для значения connected у H1 и H2 , которые участвовали в действии.
Система работала когда было пара миллионов строк, сейчас, по причине объёма, необходимо оптимизировать систему. Возмонжо перенести ёё куда то ещё или полностью переделеать. Так-же интересует оптимизация запросов к БД.
Указал минимальную стоимость. Рассматриваю различные варианты по временным затратам и стоимости.
-
Задайте ваш вопрос заказчику