Максим
То есть не станет ли база узким местом если я в несколько воркеров делать
Anton
База почти всегда узкое место 🙂
Anton
тем более на 113М инсертов
Anton
я про сумму
Максим
это да
Anton
просто БД должна все эти данные на винт скинуть
Anton
даже последовательная запись на диск 1.5 Гб время занимает 🙂
Anton
а у тебя будут рандом сики
Anton
ну если в несколько потоков
Anton
так что узким местом у тебя ну не совсем БД будет, а диск
Anton
идейно можно подумать в сторону быстрых дисков (fuision io или что там сейчас есть), но это как самолет стоит
Anton
это да
Задача очень хорошая для собеседования...
Максим
не по железу ничего не поменяешь, у меня нет доступа к базе и где она лежит я тоже не знаю)
Максим
* к серверу базы
Anton
а будут всегда инсерт или апдейты тоже?
Andrey
ну не 113, можно инсертить несколько строк за раз
у нас есть похожая задача, на каждый день,
запускатся по расписанию, дальше смотрит сколько строк в файле, делит по 10 000 записей и запускает 20 потоков. Каждый поток со смещением берет записи, делает транзакцию
Максим
Максим
Anton
Anton
у тебя явно не очереди, а крон скрипт с pcnt_fork
Andrey
ну первый, инициирующий скрипт смотрит количество строк и потом раздает фоновое выполнение артизан команде с параметрами смещения
Anton
Хотя... откуда я знаю 🙂
Anton
Максим
Andrey
да нет, почему джобы
Anton
Andrey
мысли шире ларавела)
Anton
команды можно запускать в бэкгроунде - не ждя завершения в мастер скрипте
Максим
Окей, а отслеживать их успешность как?
Andrey
system('/usr/bin/php /path/to/artisan do:somth 12000')
Andrey
Anton
хотя по моему еще чем-то форкаться можно
Andrey
Andrey
Окей, а отслеживать их успешность как?
у нас это каждый день происходит, если при транзакции эксепшн, нас уведомляет через телеграм бота об этом. но этого ни разу не было в бою) мы не запаривались
Максим
Максим
Максим
спасибо
Andrey
Andrey
Andrey
Andrey
он написал что надо "обрабатывать строки"
Andrey
Andrey
можем сразиться в выяснении кто кого не понял) но думаю, что тема закрыта
Andrey
Максим
Andrey
а инмемори нет возможности это сделать?
Максим
у меня два поля, серия и номер паспорта, там всегда цифры
Andrey
Кстати, если надо просто не надобавлять дублей есть
- INSERT IGNORE
- REPLACE
или
- ON DUPLICATE UPDATE
они работают существенно быстрее чем SELECT и затем INSERT
Алексей
Люди, подскажите, пожалуйста, как лучше (и как обычно) работают с сессиями в Laravel?
Например, у нас есть таблица active_sessions, в которую должны заноситься сессии пользователей. Может ли один пользователь (и должен ли) иметь несколько сессий одновременно? Например, с домашнего компьютера и с рабочего? Соответственно, в таблице будет две записи.
Извините, если выражаю свои мысли неясно, я новичок.
Максим
Максим
каждый день тетя из мвд обновляет его руками)
Andrey
Andrey
только через сервис
invariance
почаны а зачем нужны model factory?
Alexander
https://laravel.com/docs/5.6/seeding#using-model-factories
Alexander
))
Максим
invariance
Route::get('/', \App\Http\Controllers\API\BotController::class.'@index');
invariance
как охуенно
invariance
теперь такой формат ВООБЩЕ не работает
invariance
я думал только для ресурсов
invariance
🤦♂️
Andrey
Andrey
в прошлом работало?
invariance
надо глянуть как в ботмане сделано
Andrey
есть еще affected_rows
Andrey
по которому тоже можно понять
Alexander
Подскажите, можно ли получить оригинальные данные после update, getOriginal возвращает то же самое
Алексей
Ребят, помогите с релейшеном:
Есть таблица Products. Также есть таблица ComposedProductProducts, в ней содержатся product_id, child_product_id, amount.
Комбинированный продукт состоит из нескольких обыкновенных, но тоже хранится в Products.
То есть, Product имеет релейшн hasMany(ComposedProductProduct) и одновременно belongsToMany(ComposedProductProduct) ?