@symfony_php

Страница 485 из 1418
Sergey
14.12.2017
15:43:39
эксплэйны поделай)

Stanislav
14.12.2017
15:44:21
эксплэйны поделай)
Вполне сносный. Идёт по индексу

Google
Sergey
14.12.2017
15:44:46
и в чем проблема?

Stanislav
14.12.2017
15:45:04
Жрет ресурсы

Sergey
14.12.2017
15:45:12
EXPLAIN ANALYZE

в студию

"жрет ресурсы" - очень неточный сиптом. Это как "где-то болит"

Stanislav
14.12.2017
15:46:05
Лан, а вообще обертки для пагинации какие ещё ок? Pagerfanta?

Ибо когда разберусь с бд все равно доктрину смотреть

Sergey
14.12.2017
15:48:32
https://github.com/whiteoctober/Pagerfanta/blob/master/src/Pagerfanta/Adapter/DoctrineORMAdapter.php#L37

грусти и плачь)

у тебя 90% проблема с джойнами. выставив false ты убрал это из select но джойн ты не убрал

еще имеет значение субд

ну и в конечном счете - EXPLAIN ANALYZE

без запроса с экспейном посоветовать тебе что-то будет сложно

Google
Stanislav
14.12.2017
15:51:41
Окей, спасибо

Sergey
14.12.2017
15:52:44
а еще веселье - когда у тебя выборка больщая и надо оффсетом отсчитать 90% записей)

короч все эти "стандартные" пагинаторы хорошо работают только на чем-то скромном

Sergey
14.12.2017
15:58:04
у нас пагинация вообще на фронте происходит)

не везде естессно

Arky
14.12.2017
16:07:54
@fes0r Коммит подъехал) https://github.com/Arky9782/chat/pull/9/commits/4f537b97d298397a26d46f807fd12ae7a04b96ab

Дмитрий
14.12.2017
16:10:29
Users => User

Сущность

Dante
14.12.2017
16:11:16
Users => User
ты ж не будешь тут все правки описывать?)

Дмитрий
14.12.2017
16:11:48
Не, то сразу в глаза бросилось

Vladislav
14.12.2017
16:29:36
Vladislav
14.12.2017
16:30:54
Getmessagesaction

Stanislav
14.12.2017
16:33:34
парни-парни

про пагинатор

Using index condition; Using where

analyze говорит ОК

чот не понимаю куда копать

Boris
14.12.2017
16:37:25
Привет всем.

Andrew
14.12.2017
16:37:31
Using index condition; Using where
запрос в студию :)

Google
Andrew
14.12.2017
16:37:41
а еще лучше запрос + эксплейн

Stanislav
14.12.2017
16:38:11
ща, повырезаю все важное

Boris
14.12.2017
16:40:05
Подскажите, в чем может быть проблема? Делаю конфигурацию для бандла, беру пример из доки (acme_social, twitter) 1:1, но с моим названием бандла. И в консоли получаю каждый раз ошибку Unrecognized options "some name" under "some name"

Stanislav
14.12.2017
16:41:05
запрос в студию :)
https://monosnap.com/file/4ZIIt6TQoNviZcoscYlX0KQghtEqHe

Gaiaz Iusipov
14.12.2017
16:47:10
ребята, создаю сущности в цикле, там же их em->persist, после цикла делаю flush, почему доктрина делает insert в разных запросах, а не в одном?

for ($i = 0, $n = count($sessionConnections); $i < $n; ++$i) { $userTestPassing = new UserTestPassing(); $userTestPassing->setUser($sessionConnections[$i]->getUser()); $em->persist($userTestPassing); } // 2 запроса INSERT на 2 сущности, вместо одного :( $em->flush();

Dmitry
14.12.2017
16:49:20
она не умеет мульти-values инсерт

Максим
14.12.2017
16:49:40
Так всё правильно, зато в одной транзакции будет все

Gaiaz Iusipov
14.12.2017
16:49:49
как так-то? зачем тогда batch insert в документации?

блин че за хрень ?((

Andrew
14.12.2017
16:50:08
https://monosnap.com/file/4ZIIt6TQoNviZcoscYlX0KQghtEqHe
насколько большая выборка идет в подзапросах?

Dmitry
14.12.2017
16:50:12
в транзакции одной что бы было

Andrew
14.12.2017
16:50:17
вполне возможно в буфер не влезает

Stanislav
14.12.2017
16:50:24
как правило сильно меньпи

Andrew
14.12.2017
16:50:54
до 10к
тогда я бы предложил выкинуть дефолтную пагинацию и сделать кнопочки < >

Dmitry
14.12.2017
16:51:02
http://www.doctrine-project.org/2009/08/07/doctrine2-batch-processing.html см внизу UPDATE

Stanislav
14.12.2017
16:51:03
у меня рест апи

Gaiaz Iusipov
14.12.2017
16:51:08
тоесть одним запросом никак?

multy insert тупо нет вообще?

Google
Stanislav
14.12.2017
16:51:27
тогда я бы предложил выкинуть дефолтную пагинацию и сделать кнопочки < >
рест апи, так что не прокатит. Надо бы знать сколько там всего

Dmitry
14.12.2017
16:52:45
тупо нет вообще... много мороки... помню, делали одну такую инсертилку для постгреса... а потом пришлось на mssql ее гонять.. так оказалось, что в mssql не может быть больше тысячи плейсхолдеров в одном запросе...

Максим
14.12.2017
16:53:08
А какой от этого Профит, что она одним инсертом фигачит или десятью. Все равно в транзакцию заворачивается

Gaiaz Iusipov
14.12.2017
16:53:11
а mysql то тут рпичем :(

сцка кастрированная докрина получается

Максим
14.12.2017
16:54:33
сцка кастрированная докрина получается
Ну никто же не заставляет ее использовать. Пиши запросы руками, как тебе захочется

Dmitry
14.12.2017
16:54:33
для тебя новость, что все дополнительные слои работы с базой, особо претендующие на универсальность, ограничены по функционалу по сравнению с голым SQL?

Gaiaz Iusipov
14.12.2017
16:55:45
да понятно, уже прочел, там затык в том, что нужно ID приделывать к сущностям и для этого нельзя мультиинсерт

Максим
14.12.2017
16:56:32
Можно через dbal это сделать.

Andrew
14.12.2017
16:57:20
рест апи, так что не прокатит. Надо бы знать сколько там всего
ну еще как вариант можно сделать свой адаптер который будет генерить более умный запрос чем doctrine paginator

Admin
ERROR: S client not available

Dmitry
14.12.2017
16:57:29
вообще если ты грузишь много данных через объекты - то одельные инсерты не должны быть проблемой, а если нужно загрузить очень много данных - то ORM тут вообще не место...

Andrew
14.12.2017
16:58:07
а если нужно знать айдишник сущности — создавай его сам :) (я про UUID если то)

Gaiaz Iusipov
14.12.2017
16:58:37
тут скорее к callback доктрины привязка

если нужна логика будет

Stanislav
14.12.2017
16:58:55
ну еще как вариант можно сделать свой адаптер который будет генерить более умный запрос чем doctrine paginator
да, не хотелось без этого обойтись, по сути просто каждый запрос кастомно подковырять на предмет пагинации

Andrey
14.12.2017
16:59:11
Насколько я знаю uuid хреново индексируется, коллеги поправят если я не прав

Dmitry
14.12.2017
16:59:19
перенеси эту логику в тригеры ;)

Gaiaz Iusipov
14.12.2017
16:59:43
ок, еще вопрос: через queryBuilder гружу массив сущностей, со связанной сущностью, в дампе есть эта связанная сущность User но когда делаю явно getUser - все равно грузит отдельным запросом

Google
Sergey
14.12.2017
17:00:24
Gaiaz Iusipov
14.12.2017
17:02:19
ну не должно такого быть... может в дампе прокся видна? в селекте обе сущности перечислены?
не уверен что прокся показывается в дампере 2.8, в 3.х вроде по другому данные показывались

Dmitry
14.12.2017
17:02:53
встань дебагером просто и посмотри ;)

Arky
14.12.2017
17:04:06
я ему коммент оставлял уже
Ну ты сказал назови Users, вот я класс так же назвал)

Sergey
14.12.2017
17:04:44
Ну ты сказал назови Users, вот я класс так же назвал)
я тебе сказал класс назвать User, ты мне казал что user зарезервированное слово на что я тебе сказал "ну так назови таблицу users"

короч, на данный момент предлагаю тебе сделать фича фриз и попробовать переосмыслить что и для чего ты делаешь

ну то есть буквально что происходит на каждой написанной тобой строчке

можешь хоть комментом мотивацию прописать почему так а не иначе

это позволит: 1. тебе определить что ты не понимаешь 2. нам определить где что-то идет не так

Arky
14.12.2017
17:11:24
Где комменты оставлять?)

Ruslan
14.12.2017
17:16:43
Привет! Что за ошибка INVALID MODE : s5a326b124e073_address - type : sonata_type_collection - mapping : 2 это не исключение. Связи напутал?

Gaiaz Iusipov
14.12.2017
17:17:22
Ребята ещё вопрос: еслиraw sql доктриной писать то как можно в транзакцию другой сущности вклиниться?

Данные заливаются через postPersist "родительской" сущности

Максим
14.12.2017
17:19:20
Ты в итоге сам себе хуже делаешь. Подумай нужна ли тебе вообще доктрина.

Sergey
14.12.2017
17:19:25
ответ - никак.

ну то есть в теооооории... по onflush... может быть чего-нибудь можно с changeset придумать

НО! лучше так никогда не делать

ибо себе дороже потом дебажить "а почему это у меня тут сломалось!?"

если тебе надо что-то "дозаписать" - делай это по postFlush

иначе прощай консистентность

отдельной новой транзакцией

Страница 485 из 1418