А не проще базу попросить почитать и сгруппировать по id?

|
2022-06-23 16:53:02
alexeyshim 2022-06-23 16:38:02
Кто подкажет ответик: Делаю я цикл 20тыс раз. В нём вызываю одну и ту же функцию

Yii::$app->db->createCommand(«SELECT * FROM get_data($id)»)->queryScalar();

Почему память всё больше и больше скушивается? Ведь никакие значения не используются и вообще, каждую итерацию разве не должно значение где-нибудь удаляться и скушиваться сборщиком мусора?

Если замерить, то например при 0 итерациях разница между memory_get_usage — 0, если 20 тысяч итеарций — 128 мегабайт, если больше итераций — ещё больше.
Как сделать так, чтобы можно было бесконечно (УСЛОВНО) крутить цикл с обращением к БД без разбухания памяти для php скрипта?

а не проще базу попросить почитать и сгруппировать по id?

sizeg 2022-06-23 16:59:13
alexeyshim 2022-06-23 16:38:02
Кто подкажет ответик: Делаю я цикл 20тыс раз. В нём вызываю одну и ту же функцию

Yii::$app->db->createCommand(«SELECT * FROM get_data($id)»)->queryScalar();

Почему память всё больше и больше скушивается? Ведь никакие значения не используются и вообще, каждую итерацию разве не должно значение где-нибудь удаляться и скушиваться сборщиком мусора?

Если замерить, то например при 0 итерациях разница между memory_get_usage — 0, если 20 тысяч итеарций — 128 мегабайт, если больше итераций — ещё больше.
Как сделать так, чтобы можно было бесконечно (УСЛОВНО) крутить цикл с обращением к БД без разбухания памяти для php скрипта?

Можно оптимизировать по быстрому

$command = Yii::$app->db->createCommand(«SELECT * FROM get_data(:id)»)->bindParam(‘:id’, $id);

foreach ($ids as $id) {
$command->queryScalar();
}

alexeyshim 2022-06-23 16:59:54
2022-06-23 16:53:02
а не проще базу попросить почитать и сгруппировать по id?

Не уверен…В целом, мне вообще все эти значения поотдельности надо в кэш сложить. Там вообще будет 9млн. записей и помимо текущей функции ещё две тяжёлые будут…

Может быть да, в БД циклом бегать, сложить всё во временную таблицу и потом из неё всё сложить в кэш.

alexeyshim 2022-06-23 17:00:27
sizeg 2022-06-23 16:51:38
Сборщик рандомно запускается при запуске скрипта. Это локальная разработка? Дебагер может включен?

Отладчик включён, да.

alexeyshim 2022-06-23 17:01:02
sizeg 2022-06-23 16:59:13
Можно оптимизировать по быстрому

$command = Yii::$app->db->createCommand(«SELECT * FROM get_data(:id)»)->bindParam(‘:id’, $id);

foreach ($ids as $id) {
$command->queryScalar();
}

Да, думал об этом и ещё о кэшировании самого запроса, пока не пробовал

sizeg 2022-06-23 17:01:46
alexeyshim 2022-06-23 17:01:02
Да, думал об этом и ещё о кэшировании самого запроса, пока не пробовал

bindParam по рефералке принимает идентификатор, изменение значения автоматически отразится

sizeg 2022-06-23 17:03:00
alexeyshim 2022-06-23 17:00:27
Отладчик включён, да.

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

alexeyshim 2022-06-23 17:03:49
sizeg 2022-06-23 17:01:46
bindParam по рефералке принимает идентификатор, изменение значения автоматически отразится

Ну да, подготовленные запросы вроде должны кэшется. Попробую)

sizeg 2022-06-23 17:08:56
alexeyshim 2022-06-23 17:03:49
Ну да, подготовленные запросы вроде должны кэшется. Попробую)

Нет, запросы не кэшируются сами по себе)

alexeyshim 2022-06-23 17:12:00
sizeg 2022-06-23 17:08:56
Нет, запросы не кэшируются сами по себе)

Наверное не знаю как это назвать) помню как раз тот момент, что если единожды «приготовить» запрос, то в цикле можно принять его с профитом по производительности. Как это работает наверное не понимаю 😁 всегда казалось, что это некоторое внутреннее кэширование временное у БД 😁

sizeg 2022-06-23 17:12:55
alexeyshim 2022-06-23 17:12:00
Наверное не знаю как это назвать) помню как раз тот момент, что если единожды «приготовить» запрос, то в цикле можно принять его с профитом по производительности. Как это работает наверное не понимаю 😁 всегда казалось, что это некоторое внутреннее кэширование временное у БД 😁

createCommand возвращает объект Command. Соответственно в цикле каждый раз создается новый объект и на него выделяется память. Объект нигде принудительно не убивается, хотя бывают случаи даже убивая, остается в памяти пока сборщик не почистит. Сборщик запускается рандомно перед запуском скрипта, как дроп лута)

alexeyshim 2022-06-23 17:13:35
sizeg 2022-06-23 17:12:55
createCommand возвращает объект Command. Соответственно в цикле каждый раз создается новый объект и на него выделяется память. Объект нигде принудительно не убивается, хотя бывают случаи даже убивая, остается в памяти пока сборщик не почистит. Сборщик запускается рандомно перед запуском скрипта, как дроп лута)

Ааа. Понял.

axelsilver 2022-06-23 18:12:44
Всем привет, есть проблема с дублированием отправки формы. На форме навешано продтверждение (после кнопочки отправить, у вас спрашивают точно ли хотите), кнопочка после первого нажатия блокируется, но при плохой сети все равно возникает дубликация. Может есть надеежное готовое решение для это проблемы ?
Med1c84 2022-06-23 18:25:03
axelsilver 2022-06-23 18:12:44
Всем привет, есть проблема с дублированием отправки формы. На форме навешано продтверждение (после кнопочки отправить, у вас спрашивают точно ли хотите), кнопочка после первого нажатия блокируется, но при плохой сети все равно возникает дубликация. Может есть надеежное готовое решение для это проблемы ?

csrf

axelsilver 2022-06-23 18:25:15
Med1c84 2022-06-23 18:25:03
csrf

Он тоже дублируется кстати

axelsilver 2022-06-23 18:25:49
Med1c84 2022-06-23 18:25:03
csrf

Я так понимаю, можно как-то сконфигурировать так чтобы при дубликации, дубликат он не пропускал ?

alex_gilt 2022-06-23 18:38:31
всем приветт!
IntergalacticImperatorImhotepII 2022-06-23 19:08:35
alex_gilt 2022-06-23 18:38:31
всем приветт!

Только не начинай

danilcm 2022-06-24 01:35:19
Здарова всем
danilcm 2022-06-24 01:35:29
retex.com
howware.com
faxware.com
sumron.com
hotron.com
lotlex.com
Что скажете, какой лучше выбрать ?

HowWare.com is for sale | HugeDomainsHugeDomains
This domain name is available, own it today. Affordable payment options. Fast and professional service.
2022-06-24 11:12:14
Сейчас многие в поиске удаленного источника заработка. Если это про тебя, то присоединяйся к чату YES NO MAD ❤️‍🔥

YES NO MAD — цифровое комьюнити без границ, где тебе помогут в поиске международных проектов, поделятся личным опытом и поддержат в начинаниях.

whatsup003 2022-06-24 13:22:38
Ребят, как прикрутить template к ActiveField checkbox() ?

пробовал указывать параметр template внутри options, но не получается

Romanov_isko 2022-06-24 13:26:53
yii2ru-409799.jpg
так он стучится только с связанной модели и вытаскивает ее а как вытащить промежуточный value
Romanov_isko 2022-06-24 13:26:53
yii2ru-409798.jpg
как вытащить данные из сводной таблицы т.е. в третьей таблице customer_profile_id, activity_type_id и value
Romanov_isko 2022-06-24 13:26:54
не могу разобраться
Romanov_isko 2022-06-24 13:27:02
Хелпаните чем можете пж
this_is_igrek 2022-06-24 13:29:37
whatsup003 2022-06-24 13:22:38
Ребят, как прикрутить template к ActiveField checkbox() ?

пробовал указывать параметр template внутри options, но не получается

Просто третьим параметром укажи массив , где ключ ‘template’ (внутри field)

whatsup003 2022-06-24 13:31:21
this_is_igrek 2022-06-24 13:29:37
Просто третьим параметром укажи массив , где ключ ‘template’ (внутри field)

а почему внутри field ?

whatsup003 2022-06-24 13:31:30
this_is_igrek 2022-06-24 13:29:37
Просто третьим параметром укажи массив , где ключ ‘template’ (внутри field)

<?= $form->field($model, ‘rememberMe’)->checkbox([
‘template’ => ‘<div class=»col-md-1″>{label}</div><div class=»col-md-5″>{input}</div><div class=»col-md-6″>{error}</div>’
])?>

this_is_igrek 2022-06-24 13:32:05
whatsup003 2022-06-24 13:31:30
<?= $form->field($model, ‘rememberMe’)->checkbox([
‘template’ => ‘<div class=»col-md-1″>{label}</div><div class=»col-md-5″>{input}</div><div class=»col-md-6″>{error}</div>’
])?>

Внутри field, после rememberMe

hcan359 2022-06-24 13:33:03
Romanov_isko 2022-06-24 13:26:53
как вытащить данные из сводной таблицы т.е. в третьей таблице customer_profile_id, activity_type_id и value

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

Romanov_isko 2022-06-24 13:35:05
hcan359 2022-06-24 13:33:03
Только форычом бежать в таком варианте, либо делать отдельный запрос где в селекте указывать что хочешь получить

А что-то по типу withPivot() функций как в ларке нет, да ?

hcan359 2022-06-24 13:36:17
Такого не видел, ты ищещь объекты которые не имею прямой связи, в итоге получаешь модели у которых нет доступа напрямую к твоей via таблицы. Я думаю тебе нужен отдельный запрос
hcan359 2022-06-24 13:36:48
но это не точно, ты понял да)
Romanov_isko 2022-06-24 13:40:40
hcan359 2022-06-24 13:36:17
Такого не видел, ты ищещь объекты которые не имею прямой связи, в итоге получаешь модели у которых нет доступа напрямую к твоей via таблицы. Я думаю тебе нужен отдельный запрос

Спасибки

whatsup003 2022-06-24 13:44:42
this_is_igrek 2022-06-24 13:32:05
Внутри field, после rememberMe

yii2ru-409811.jpg
не получается,
мне нужно чтобы было так:

2022-06-24 14:13:55
as for this ?
Travelingboy17 2022-06-24 19:31:54
Привет всем при миграции выдаёт ошибку как исправить?

Yii Migration Tool (based on Yii v2.0.45)

Exception ‘yii\db\Exception’ with message ‘could not find driver’

in D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php:647

Caused by: Exception ‘PDOException’ with message ‘could not find driver’

in D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php:721

Stack trace:
#0 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(721): PDO->__construct()
#1 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(636): yii\db\Connection->createPdoInstance()
#2 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(1066): yii\db\Connection->open()
#3 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(1053): yii\db\Connection->getMasterPdo()
#4 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(261): yii\db\Connection->getSlavePdo()
#5 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(1163): yii\db\Command->prepare()
#6 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(410): yii\db\Command->queryInternal()
#7 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\mysql\Schema.php(320): yii\db\Command->queryAll()
#8 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\mysql\Schema.php(125): yii\db\mysql\Schema->findColumns()
#9 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Schema.php(756): yii\db\mysql\Schema->loadTableSchema()
#10 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Schema.php(192): yii\db\Schema->getTableMetadata()
#11 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\MigrateController.php(211): yii\db\Schema->getTableSchema()
#12 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(908): yii\console\controllers\MigrateController->getMigrationHistory()
#13 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(183): yii\console\controllers\BaseMigrateController->getNewMigrations()
#14 [internal function]: yii\console\controllers\BaseMigrateController->actionUp()
#15 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array()
#16 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Controller.php(178): yii\base\InlineAction->runWithParams()
#17 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Controller.php(182): yii\base\Controller->runAction()
#18 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Module.php(552): yii\console\Controller->runAction()
#19 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Application.php(180): yii\base\Module->runAction()
#20 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Application.php(147): yii\console\Application->runAction()
#21 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Application.php(384): yii\console\Application->handleRequest()
#22 D:\Xammp\htdocs\magazin\yii(23): yii\base\Application->run()
#23 {main}

byb4ik 2022-06-24 19:34:17
Travelingboy17 2022-06-24 19:31:54
Привет всем при миграции выдаёт ошибку как исправить?

Yii Migration Tool (based on Yii v2.0.45)

Exception ‘yii\db\Exception’ with message ‘could not find driver’

in D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php:647

Caused by: Exception ‘PDOException’ with message ‘could not find driver’

in D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php:721

Stack trace:
#0 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(721): PDO->__construct()
#1 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(636): yii\db\Connection->createPdoInstance()
#2 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(1066): yii\db\Connection->open()
#3 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(1053): yii\db\Connection->getMasterPdo()
#4 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(261): yii\db\Connection->getSlavePdo()
#5 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(1163): yii\db\Command->prepare()
#6 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(410): yii\db\Command->queryInternal()
#7 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\mysql\Schema.php(320): yii\db\Command->queryAll()
#8 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\mysql\Schema.php(125): yii\db\mysql\Schema->findColumns()
#9 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Schema.php(756): yii\db\mysql\Schema->loadTableSchema()
#10 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Schema.php(192): yii\db\Schema->getTableMetadata()
#11 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\MigrateController.php(211): yii\db\Schema->getTableSchema()
#12 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(908): yii\console\controllers\MigrateController->getMigrationHistory()
#13 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(183): yii\console\controllers\BaseMigrateController->getNewMigrations()
#14 [internal function]: yii\console\controllers\BaseMigrateController->actionUp()
#15 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array()
#16 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Controller.php(178): yii\base\InlineAction->runWithParams()
#17 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Controller.php(182): yii\base\Controller->runAction()
#18 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Module.php(552): yii\console\Controller->runAction()
#19 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Application.php(180): yii\base\Module->runAction()
#20 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Application.php(147): yii\console\Application->runAction()
#21 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Application.php(384): yii\console\Application->handleRequest()
#22 D:\Xammp\htdocs\magazin\yii(23): yii\base\Application->run()
#23 {main}

Пдошечки нима

byb4ik 2022-06-24 19:34:30
Или ее не видит пышечка
byb4ik 2022-06-24 19:34:50
В пхп.ини раскомментировал
byb4ik 2022-06-24 19:34:53
?
Travelingboy17 2022-06-24 19:35:28
byb4ik 2022-06-24 19:34:50
В пхп.ини раскомментировал

Не знаю

Travelingboy17 2022-06-24 19:35:38
а какие на раскоменнтировать
byb4ik 2022-06-24 19:39:24
Travelingboy17 2022-06-24 19:35:38
а какие на раскоменнтировать

Что гугл ответил?, бро это основы php, даже не основы йии2 (

Travelingboy17 2022-06-24 19:40:40
byb4ik 2022-06-24 19:39:24
Что гугл ответил?, бро это основы php, даже не основы йии2 (

но я уже давно не практиковал и не писал код уже около 2 года и тем более я новичок джун

Travelingboy17 2022-06-24 19:40:44
помогите пж
byb4ik 2022-06-24 19:46:41
https://www.php.net/manual/ru/pdo.installation.php
Travelingboy17 2022-06-24 19:54:25
byb4ik 2022-06-24 19:46:41
https://www.php.net/manual/ru/pdo.installation.php

спасибо большое

kwazaro 2022-06-25 14:13:32
Travelingboy17 2022-06-24 19:31:54
Привет всем при миграции выдаёт ошибку как исправить?

Yii Migration Tool (based on Yii v2.0.45)

Exception ‘yii\db\Exception’ with message ‘could not find driver’

in D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php:647

Caused by: Exception ‘PDOException’ with message ‘could not find driver’

in D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php:721

Stack trace:
#0 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(721): PDO->__construct()
#1 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(636): yii\db\Connection->createPdoInstance()
#2 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(1066): yii\db\Connection->open()
#3 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Connection.php(1053): yii\db\Connection->getMasterPdo()
#4 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(261): yii\db\Connection->getSlavePdo()
#5 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(1163): yii\db\Command->prepare()
#6 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Command.php(410): yii\db\Command->queryInternal()
#7 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\mysql\Schema.php(320): yii\db\Command->queryAll()
#8 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\mysql\Schema.php(125): yii\db\mysql\Schema->findColumns()
#9 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Schema.php(756): yii\db\mysql\Schema->loadTableSchema()
#10 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\db\Schema.php(192): yii\db\Schema->getTableMetadata()
#11 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\MigrateController.php(211): yii\db\Schema->getTableSchema()
#12 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(908): yii\console\controllers\MigrateController->getMigrationHistory()
#13 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(183): yii\console\controllers\BaseMigrateController->getNewMigrations()
#14 [internal function]: yii\console\controllers\BaseMigrateController->actionUp()
#15 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array()
#16 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Controller.php(178): yii\base\InlineAction->runWithParams()
#17 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Controller.php(182): yii\base\Controller->runAction()
#18 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Module.php(552): yii\console\Controller->runAction()
#19 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Application.php(180): yii\base\Module->runAction()
#20 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\console\Application.php(147): yii\console\Application->runAction()
#21 D:\Xammp\htdocs\magazin\vendor\yiisoft\yii2\base\Application.php(384): yii\console\Application->handleRequest()
#22 D:\Xammp\htdocs\magazin\yii(23): yii\base\Application->run()
#23 {main}

Запусти в папке с проектом php ,/requirements.php и это многое прояснит

|