Установка Текдок оптимизированого — различия между версиями
Строка 29: | Строка 29: | ||
ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `ID_art` ) ; | ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `ID_art` ) ; | ||
+ | Для проекта BUR (extraparts.com.ua):<br> | ||
+ | Первый запрос на 1501 делался 5.5 часов и заняла таблица 142Gb | ||
create table `cat_alt_link_grp_art` SELECT a.id_art,g.ID_grp,a.id_sup_src FROM `cat_alt_link_str_art` a | create table `cat_alt_link_grp_art` SELECT a.id_art,g.ID_grp,a.id_sup_src FROM `cat_alt_link_str_art` a | ||
inner join `cat_alt_link_str_grp` g on g.id_tree = a.id_tree; | inner join `cat_alt_link_str_grp` g on g.id_tree = a.id_tree; |
Версия 10:15, 4 декабря 2015
Оптимизированный Текдок создается из базы оригинального Текдок. Картинки и PDF используются из оригинального Текдок и не изменяется расположение этих файлов.
Для формирования базы используются запросы из файлов:
catalog_create.sql catalog_insert1.sql catalog_insert2.sql catalog_insert3.sql
Эти файлы находятся в архиве: Файл:Catalog opti.zip
В принципе можно все объединить в один файл.
Перед запуском скриптов укажите правильно исходную базу оригинального Текдока, путем замены например _1302 на _1303 во всех файлах.
В файле catalog_create.sql создаются таблицы и формируются данные переводов использую язык и страну, поэтому проконтролируйте эти значения.
Язык указывается в переменной lng_id, значение 16 соответствует русскому языку, 4 - English.
Страна для выбора названия моделей, модификаций и так далее указывается в cou_id, значение 187 соответствует России, а 225 - Украине, 250 - Европа.
На данный момент мы создавали только одну базу при этом в ней не были учтены страны. Поэтому некоторые заказчики жаловались на неправильные названия моделей и модификаций. В оптимизированном текдоке база создается только для одной страны, поэтому если сайт будет использовать модели определенной страны, то надо создавать отдельную базу с данными по этой стране, например opti_1303_ua.
Аналогичная ситуация с языком, если сайт будет мультиязычным, то придется создавать отдельные базы по разным языкам и как-то учитывать это в подключении оптимизированного Текдока, например путем изменения константы DB_OCAT в зависимости от языка сайта. Или оставлять подключение к оригинальному Текдоку вместо оптимизированого(?)
Добавочные запросы:
Добавление индексов для кроссов
ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `Search` , `Kind` ) ; ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `ID_art` ) ; Для проекта BUR (extraparts.com.ua):<br> Первый запрос на 1501 делался 5.5 часов и заняла таблица 142Gb create table `cat_alt_link_grp_art` SELECT a.id_art,g.ID_grp,a.id_sup_src FROM `cat_alt_link_str_art` a inner join `cat_alt_link_str_grp` g on g.id_tree = a.id_tree; ALTER TABLE `opti_1501`.`cat_alt_link_grp_art` ADD INDEX (`id_art`); ALTER TABLE `opti_1501`.`cat_alt_link_grp_art` ADD INDEX (`ID_grp`);
Обновление списка моделей
После обновления текдок, нужно обязательно обновить список моделей запросом:
INSERT IGNORE INTO autoklondayk.cat_model (tof_mod_id,brand,name,month_start,year_start,month_end,year_end,visible) SELECT om.ID_src tof_mod_id,man.Name brand, om.Name name ,SUBSTRING(om.DateStart, 1, 2) month_start,SUBSTRING(om.DateStart, 4, 4) year_start ,SUBSTRING(om.DateEnd, 1, 2) month_end,SUBSTRING(om.DateEnd, 4, 4) year_end ,1 visible FROM opti_1302_ua.cat_alt_models om inner join opti_1302_ua.cat_alt_manufacturer man on om.ID_mfa=man.ID_mfa left join autoklondayk.cat_model m on m.tof_mod_id=om.ID_src where m.id is null order by om.ID_src
Где opti_1302_ua - название новой базы текдок, autoklondayk - название базы проекта, на котором обновляем список моделей