ну так в условие то не попадает, у тебя условие начинает работать с переадресацией если логин и пароль пришли, если их нет соответственно никаких проверок дальше и нет,
в конце допиши
Добрый день, не могу найти как составить запрос с условием то есть:
Выбрать все из таблицы table
/*Куча еще LEFT JOIN*/
Где поле статус в таблице table.status=1
или
/*Это не пойму как составить*/
если (одна из таблиц LEFT JOIN).user_id="такому то значению" то в выборку должны попасть записи со статусом 2 - table.status=2
попробовал таблицу куда нацелены все JOIN поставить Memory, база прям залетала, интересно возможен такой механизм данные при записи пишутся в 2 таблицы эту и такуюже с типом например InnoDB, при старте сервака данные переносятся в таблицу Memory, и с ними работают, так как операций чтения очень много, а таблица сама по себе состоит из нескольких полей INT (Добавление) Мелкий мне нужно получить соответствие 1 объект - одна строка данных, конечно при записи в бд проверяется чтобы одному объекту соответствовало 1 значение какого либо свойства, но мало ли (Добавление)
/* Affected rows: 22272 Найденные строки: 0 Предупреждения: 0 Длительность 1 query: 0,000 sec. */
данных конечно сейчас мало но ожидается порядка 2-3 млн записей
что скажете? данную операцию надо будет производить только при старте сервака (Добавление)
или тригером после инсерта? (Добавление)
только вот никогда не писал их, так ругается
(Добавление)
сделал, данные при апдейте подтягиваются и меняются в основной таблице.
при апдейте и инсерте Memory обновляется она используется при подборе, если таблица пуста то подбор не работает, но мы видим список объектов без свойств, если зайти в объект то свойства подгружаются из основной таблицы, то есть потеря или изменение данных не там в принципе не возможна.
на локальном хосте под openserver
SSD 512 запись чтение, проц i3 2,8 4 ядра, 8 гигов оперативы, но нагрузки я не замечал,
база построена на PDO может попробовать Postgre поставить? (Добавление)
что то подключил через postgre а оно вобще не пашет, подключается без ошибок но запросы не выполняет, вот например
с ключами шевелится быстро, но до первого инсерта, потом похоже переиндексация, первый запрос тупит, а данных надо добавлять много (Добавление)
движок MyIsam, на InnoDb тупит еще больше (Добавление)
я даже низнаю что будет когда данными наполнится таблица RS-CMS_adresat_directory_values_ to_object она по идее раз в 15 больше из которой делаю основной селект, сейчас она пустая практически
Написал БД для недвижимости, на любом итпе объекта может быть сколько угодно параметров которые берутся из справочников, взял добавил рандомно 50 тыс записей,
при вводе нового объекта срабатывает поиск на соответствие, так вот если параметров не было показывает общее количество объектов и с лимитом немного объектов.
Так вот первый раз это происходит минуты 2, потом справляется за пол секунды, но стоит внести новый объект то опять первый раз около 2х минут, можно как это решить?
запрос большой много LEFT JOIN для выдергивания параметров, пример:
SELECT`RS-CMS_adresat_object`.*,`dir_param_ws`.value AS param_ws ,`param_test`.value_int AS param_test ,`dir_param_floor`.value_int AS param_floor ,`dir_param_material`.value AS param_material ,`param_s_k`.value_int AS param_s_k ,`param_rrr`.value_int AS param_rrr ,`dir_param_names`.value AS param_names ,`param_info`.value AS param_info ,`param_price`.value_int AS param_price ,`dir_param_city`.value AS param_city FROM`RS-CMS_adresat_object`LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS`param_ws`ON`param_ws`.object_id =`RS-CMS_adresat_object`.id AND`param_ws`.id_directory=16 LEFTJOIN`RS-CMS_adresat_directory_values`AS`dir_param_ws`ON`dir_param_ws`.id =`param_ws`.link AND`dir_param_ws`.id_directory=16 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS param_test ON`param_test`.object_id =`RS-CMS_adresat_object`.id AND`param_test`.id_directory=19 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS`param_floor`ON`param_floor`.object_id =`RS-CMS_adresat_object`.id AND`param_floor`.id_directory=14 LEFTJOIN`RS-CMS_adresat_directory_values`AS`dir_param_floor`ON`dir_param_floor`.id =`param_floor`.link AND`dir_param_floor`.id_directory=14 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS`param_material`ON`param_material`.object_id =`RS-CMS_adresat_object`.id AND`param_material`.id_directory=15 LEFTJOIN`RS-CMS_adresat_directory_values`AS`dir_param_material`ON`dir_param_material`.id =`param_material`.link AND`dir_param_material`.id_directory=15 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS param_s_k ON`param_s_k`.object_id =`RS-CMS_adresat_object`.id AND`param_s_k`.id_directory=20 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS param_rrr ON`param_rrr`.object_id =`RS-CMS_adresat_object`.id AND`param_rrr`.id_directory=22 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS`param_names`ON`param_names`.object_id =`RS-CMS_adresat_object`.id AND`param_names`.id_directory=23 LEFTJOIN`RS-CMS_adresat_directory_values`AS`dir_param_names`ON`dir_param_names`.id =`param_names`.link AND`dir_param_names`.id_directory=23 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS param_info ON`param_info`.object_id =`RS-CMS_adresat_object`.id AND`param_info`.id_directory=17 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS param_price ON`param_price`.object_id =`RS-CMS_adresat_object`.id AND`param_price`.id_directory=24 LEFTJOIN`RS-CMS_adresat_directory_values_to_object`AS`param_city`ON`param_city`.object_id =`RS-CMS_adresat_object`.id AND`param_city`.id_directory=10 LEFTJOIN`RS-CMS_adresat_directory_values`AS`dir_param_city`ON`dir_param_city`.id =`param_city`.link AND`dir_param_city`.id_directory=10 WHERE`RS-CMS_adresat_object`.type_id=:type GROUPBY`RS-CMS_adresat_object`.id ORDERBY`RS-CMS_adresat_object`.date_add DESCLIMIT10
(Добавление)
на хосте проверил занимает 33 секунды это дело, но все равно это очень долго для 50 тыс объектов (Добавление)
на сколько я понял запрос возникает длительный если происходит запрос без условий, если есть хоть одно условие помимо WHERE `RS-CMS_adresat_object`.type_id=:type то все происходит быстро