Оптимизация SQL-запросов
- nix
- Автор темы
- Не в сети
- Новый участник
Less
Больше
- Сообщений: 5
- Спасибо получено: 0
9 года 1 нед. назад #7441
от nix
nix создал тему: Оптимизация SQL-запросов
Здравствуйте еще раз. Wedal, вы что-то говорили об SQL-запросах в моей предыдущей теме, и потому, к вам будет один серьезный вопрос. Вот есть тип контента, в котором располагается достаточно много полей. Некоторые из этих полей - Core42 со своим PHP-кодом, считывающим данные из базы по заданным запросам. Проблема в том, что среди этих полей есть многие, считывающие одни и те же данные из базы, следствием чего является большое количество повторных SQL-запросов. Еще одна проблема - в том, что поля с повторяющимися запросами располагаются не друг за другом, но между ними есть и другие поля.
В результате, поразмыслив, я решил объединить все эти поля в одно поле Core42, выведя в нем весь необходимый мне PHP-код, то есть, можно сказать, полностью самостоятельно генерирую разметку страницы этого типа контента. Дело в том, что между этими полями Core42 еще находятся и обычные поля - Text, Textarea и другие, а потому, пришлось слить в общее поле и их.
Это не беда, PHP я знаю, и разбираться в таком коде для меня намного проще, чем в огромном количестве полей, притом, что и длина его незначительна - 150-200 строк. Беда в другом: я не знаю, как Seblod работает с базой данных. Допустим, есть у меня на форме 10 полей типа Text (только они и все), считывающие данные из одной и той же таблицы, например, из столбцов 'param1', 'param2', ... , 'param10', стандартным способом считывания Seblod. Теперь я объединяю эти поля в одно поле Core42 и считываю все данные одним SQL-запросом:
Будет ли это быстрее? Медленнее? Не отличится по скорости от стандартного считывания?
В результате, поразмыслив, я решил объединить все эти поля в одно поле Core42, выведя в нем весь необходимый мне PHP-код, то есть, можно сказать, полностью самостоятельно генерирую разметку страницы этого типа контента. Дело в том, что между этими полями Core42 еще находятся и обычные поля - Text, Textarea и другие, а потому, пришлось слить в общее поле и их.
Это не беда, PHP я знаю, и разбираться в таком коде для меня намного проще, чем в огромном количестве полей, притом, что и длина его незначительна - 150-200 строк. Беда в другом: я не знаю, как Seblod работает с базой данных. Допустим, есть у меня на форме 10 полей типа Text (только они и все), считывающие данные из одной и той же таблицы, например, из столбцов 'param1', 'param2', ... , 'param10', стандартным способом считывания Seblod. Теперь я объединяю эти поля в одно поле Core42 и считываю все данные одним SQL-запросом:
Code:
SELECT param1, param2, ... , param10 FROM ...
Будет ли это быстрее? Медленнее? Не отличится по скорости от стандартного считывания?
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
Less
Больше
- Сообщений: 2868
- Спасибо получено: 659
9 года 1 нед. назад #7442
от Wedal
Wedal ответил в теме Оптимизация SQL-запросов
nix, все как-то сумбурно. Если это не секрет, опишите задачу которую вы решаете, не абстрактно, а конкретно. Какова цель этого кода?
И вообще, зачем вы формируете код в Core-42? Может быть проще сделать собственные макеты для разных страниц? Seblod поддерживает практически все возможные способы переопределения макетов, полей, любых данных.
И вообще, зачем вы формируете код в Core-42? Может быть проще сделать собственные макеты для разных страниц? Seblod поддерживает практически все возможные способы переопределения макетов, полей, любых данных.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- nix
- Автор темы
- Не в сети
- Новый участник
Less
Больше
- Сообщений: 5
- Спасибо получено: 0
9 года 1 нед. назад - 9 года 1 нед. назад #7447
от nix
nix ответил в теме Оптимизация SQL-запросов
Wedal, не умею переопределять макеты, с этим все очень туманно в голове. Core42 использую как единственную возможность обратиться к PHP. Есть ли серьезные причины использовать переопределения (например, Core42 работает медленнее с большим количеством кода)?
Пример привести сложно, такая проблема встречается вообще во всех типах контента на сайте. Но, допустим, пример такой. Некоторое время назад столкнулся с чем-то вроде бага Seblod, описал проблему здесь . Вкратце, если добавить в тип контента поле Core42, считывающее в Storage значение id, то тип контента перестает сохраняться. К слову, и иные проблемы есть, связанные с id в Storage.
Временное решение проблемы описал там же: в Storage пишу 'alias', а потом по этому значению вручную считываю id. И такое действие выполняется сразу в нескольких полях. Чтобы не было лишних запросов к базе данных, я хочу объидинить эти поля в одно и один раз считать из базы значение 'id'. Но между ними в типе контента (или типе поиска) находятся и другие стандартные поля (например, art_title). Поэтому, для того, чтобы объединить эти поля в одно, мне нужно объединить с ними и стандартные.
Пример привести сложно, такая проблема встречается вообще во всех типах контента на сайте. Но, допустим, пример такой. Некоторое время назад столкнулся с чем-то вроде бага Seblod, описал проблему здесь . Вкратце, если добавить в тип контента поле Core42, считывающее в Storage значение id, то тип контента перестает сохраняться. К слову, и иные проблемы есть, связанные с id в Storage.
Временное решение проблемы описал там же: в Storage пишу 'alias', а потом по этому значению вручную считываю id. И такое действие выполняется сразу в нескольких полях. Чтобы не было лишних запросов к базе данных, я хочу объидинить эти поля в одно и один раз считать из базы значение 'id'. Но между ними в типе контента (или типе поиска) находятся и другие стандартные поля (например, art_title). Поэтому, для того, чтобы объединить эти поля в одно, мне нужно объединить с ними и стандартные.
Последнее редактирование: 9 года 1 нед. назад пользователем nix.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
Less
Больше
- Сообщений: 2868
- Спасибо получено: 659
9 года 5 дн. назад #7448
от Wedal
Wedal ответил в теме Оптимизация SQL-запросов
nix, если я правильно понял, то у вас есть некоторые данные, которые вы получаете из базы SQL-запросом, и которые нужно сохранить вместе с другими данными SEBLOD при отправке формы. Если этим задача ограничивается, и поле Core42 с запросами присутствует только в формах, но не в списках на сайте, но нет ничего страшного в нескольких лишних запросах, ведь форма добавления контента вызывается не так часто.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.