Блог

Сергей Сенаторов

Name: Sergey Senatorov

FullStack developer

запросы

Замена данных в mysql

Дата публикации: 13.10.2009
Метки: bitrix, mysql, запросы, оптимизация
Выбрать дубли и заменить https на https:
select CODE, COUNT(ID) as  CNT, GROUP_CONCAT(ID) as ID_LIST
FROM yourtable 
WHERE IBLOCK_ID = 11 GROUP BY CODE HAVING CNT > 1 LIMIT 10
#Заменить 7 на +7
UPDATE yourtable SET `PERSONAL_MOBILE` = CONCAT( '+', `PERSONAL_MOBILE`) WHERE PERSONAL_MOBILE LIKE "7%"
#Заменить 8 на +7
UPDATE yourtable SET `PERSONAL_MOBILE` = CONCAT( '+7', RIGHT(PERSONAL_MOBILE, LENGTH(PERSONAL_MOBILE) - 1)) WHERE PERSONAL_MOBILE LIKE "8%"

Убираем подсчет элементов 1С-Битрикс в отдельную таблицу средствами MYSQL

Дата публикации: 13.10.2009
Метки: bitrix, mysql, запросы, оптимизация

В компоненте каталога 1С-битрикс есть параметр - COUNT_ELEMENTS, который подсчитывает количество элементов в таблице. Если у вас таблица содержит достаточно большое количество значений, выполнения запроса может занимать до нескольких секунд. Как один из вариантов решения можно отключить в компоненте данную опцию и реализовать ее посредствам создания отдельной таблицы, в которой будет храниться информация о количестве элементов в разделах. А обновлять таблицу можно на событиях Битрикс, обновлять скриптом по крону или через триггеры базы данных. Разберем последний. Чтобы произвести подсчет Битрикс делает запрос примерно такого вида:

Читать запись полностью »

Ссылки на сайт с удаленного сервера ?

Дата публикации: 13.10.2009
Метки: bitrix, mysql, запросы, оптимизация

Иногда количество медиа контента который тянется с тестовой копии достаточно большой. В таком случае на локальной копии имеет смысл заменить ссылки на сайт с удаленного сервера.
Для Apache это можно зделать следующим образом:

Правила для .htaccess
RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://yoursite.ru/$1 [R,NC,L]

Проблема которая может возникнуть в таком случае это ресайз изображения. Система будет проверять их физическое наличие. Иногда это бывает важно. Чтобы изображения подтягивались уже отресайзеные, можно заменить условие в ядре. В таком случае мы убираем проверку на физическое наличие файла и ссылка идет уже на изображение с ресайзом.

/bitrix/modules/main/classes/general/file.php:1552 //elseif (!file_exists($io->GetPhysicalName($_SERVER["DOCUMENT_ROOT"].$cacheImageFileCheck)))

Либо чтобы избавится от исправлений внутри ядра, можно обернуть ресайз в него и добавить условие там. Как реализовать, решать вам.