Здравствуйте такая ситуация есть новостной сайт 2.10.1 там за 5 лет много новостей. Создал новый сайт на 2.15.1 создал тип контента идентичный как там и все поля и перенес полностью новости со старого cms_con_news и при импорте таблиц со старой в новую соблюдая всю структуру почему-то ошибка вот такая
--
— Индексы сохранённых таблиц
--
--
— Индексы таблицы `cms_con_news`
--
ALTER TABLE `cms_con_news`
ADD PRIMARY KEY (`id`),
ADD KEY `category_id` (`category_id`),
ADD KEY `approved_by` (`approved_by`),
ADD KEY `folder_id` (`folder_id`),
ADD KEY `slug` (`slug`),
ADD KEY `date_pub` (`is_pub`,`is_parent_hidden`,`is_approved`,`date_pub`),
ADD KEY `parent_id` (`parent_id`,`parent_type`,`date_pub`),
ADD KEY `user_id` (`user_id`,`date_pub`),
ADD KEY `date_pub_end` (`date_pub_end`),
ADD KEY `dataset_discussed` (`is_pub`,`is_parent_hidden`,`is_approved`,`comments`),
ADD KEY `dataset_popular` (`is_pub`,`is_parent_hidden`,`is_approved`,`rating`),
ADD KEY `dataset_glav` (`na_glav`,`is_pub`,`is_parent_hidden`,`is_approved`,`date_pub`),
ADD KEY `na_glav` (`na_glav`),
ADD KEY `dataset_poslmy` (`is_pub`,`is_parent_hidden`,`is_deleted`,`is_approved`,`date_pub`),
ADD KEY `dataset_mytopban` (`is_pub`,`is_parent_hidden`,`is_deleted`,`is_approved`),
ADD FULLTEXT KEY `lid[...]
Ответ MySQL: Документация
#1068 — Multiple primary key defined
И вроде бы все ничего если взять штук 500 новостей
Но если я таким способом импортирую все 55 тысяч новостей то потом сайт грузит по 3 секунды при отладке пишит ошибку
SELECT i.*, u.nickname as `user_nickname`, u.slug as `user_slug`, u.is_deleted as `user_is_deleted`, u.groups as `user_groups`, u.avatar as `user_avatar`, u.privacy_options as `user_privacy_options`, f.title as `folder_title`, cat.title as `cat_title`, cat.slug as `cat_slug`
FROM cms_con_news i
FORCE INDEX (date_pub)
INNER JOIN cms_users as u ON u.id = i.user_id
LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
LEFT JOIN cms_con_news_cats as cat ON cat.id = i.category_id
WHERE (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
ORDER BY i.date_pub desc
LIMIT 10
Время выполнения 1.17121 секунд
Как мне перенести безболезненно все новости чтоб потом сайт не грузило не могу понять в чем проблема я в mysql не силен. Уже появляются мысли через импорт контента по тихоньку импортировать
Здравствуйте такая ситуация есть новостной сайт 2.10.1 там за 5 лет много новостей. Создал новый сайт на 2.15.1 создал тип контента идентичный как там и все поля и перенес полностью новости со старого cms_con_news и при импорте таблиц со старой в новую соблюдая всю структуру почему-то ошибка вот такая
--
— Индексы сохранённых таблиц
----
— Индексы таблицы `cms_con_news`
--
ALTER TABLE `cms_con_news`
ADD PRIMARY KEY (`id`),
ADD KEY `category_id` (`category_id`),
ADD KEY `approved_by` (`approved_by`),
ADD KEY `folder_id` (`folder_id`),
ADD KEY `slug` (`slug`),
ADD KEY `date_pub` (`is_pub`,`is_parent_hidden`,`is_approved`,`date_pub`),
ADD KEY `parent_id` (`parent_id`,`parent_type`,`date_pub`),
ADD KEY `user_id` (`user_id`,`date_pub`),
ADD KEY `date_pub_end` (`date_pub_end`),
ADD KEY `dataset_discussed` (`is_pub`,`is_parent_hidden`,`is_approved`,`comments`),
ADD KEY `dataset_popular` (`is_pub`,`is_parent_hidden`,`is_approved`,`rating`),
ADD KEY `dataset_glav` (`na_glav`,`is_pub`,`is_parent_hidden`,`is_approved`,`date_pub`),
ADD KEY `na_glav` (`na_glav`),
ADD KEY `dataset_poslmy` (`is_pub`,`is_parent_hidden`,`is_deleted`,`is_approved`,`date_pub`),
ADD KEY `dataset_mytopban` (`is_pub`,`is_parent_hidden`,`is_deleted`,`is_approved`),
ADD FULLTEXT KEY `lid[...]
Ответ MySQL: Документация#1068 — Multiple primary key defined
И вроде бы все ничего если взять штук 500 новостей
Но если я таким способом импортирую все 55 тысяч новостей то потом сайт грузит по 3 секунды при отладке пишит ошибку
SELECT i.*, u.nickname as `user_nickname`, u.slug as `user_slug`, u.is_deleted as `user_is_deleted`, u.groups as `user_groups`, u.avatar as `user_avatar`, u.privacy_options as `user_privacy_options`, f.title as `folder_title`, cat.title as `cat_title`, cat.slug as `cat_slug`
FROM cms_con_news i
FORCE INDEX (date_pub)
INNER JOIN cms_users as u ON u.id = i.user_id
LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
LEFT JOIN cms_con_news_cats as cat ON cat.id = i.category_id
WHERE (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
ORDER BY i.date_pub desc
LIMIT 10Время выполнения 1.17121 секунд
Как мне перенести безболезненно все новости чтоб потом сайт не грузило не могу понять в чем проблема я в mysql не силен. Уже появляются мысли через импорт контента по тихоньку импортировать
SELECT i.*, u.nickname as `user_nickname`, u.slug as `user_slug`, u.is_deleted as `user_is_deleted`, u.groups as `user_groups`, u.avatar as `user_avatar`, u.privacy_options as `user_privacy_options`, f.title as `folder_title`, cat.title as `cat_title`, cat.slug as `cat_slug`
FROM cms_con_news i
FORCE INDEX (date_pub)
INNER JOIN cms_users as u ON u.id = i.user_id
LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
LEFT JOIN cms_con_news_cats as cat ON cat.id = i.category_id
WHERE (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
ORDER BY i.date_pub desc
LIMIT 4
Время выполнения 0.88028 секунд
/system/controllers/content/model.php => 1761 => modelContent->getContentItems()
SELECT i.*, u.nickname as `user_nickname`, u.slug as `user_slug`, u.is_deleted as `user_is_deleted`, u.groups as `user_groups`, u.avatar as `user_avatar`, u.privacy_options as `user_privacy_options`, f.title as `folder_title`, cat.title as `cat_title`, cat.slug as `cat_slug`
FROM cms_con_news i
FORCE INDEX (date_pub)
INNER JOIN cms_users as u ON u.id = i.user_id
LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
LEFT JOIN cms_con_news_cats as cat ON cat.id = i.category_id
WHERE (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
ORDER BY i.date_pub desc
LIMIT 30
Время выполнения 0.86205 секунд
итог такой за каждый виджет будет по секунде запрос а то и больше и сайт конкретно грузит хотя на версии 2.10.1 вся главная страница в кучу виджетах 55 тысяч статей и сайт грузит 0.5 а тут он будет под 10 сек