@mannaro, я бы сделал третью таблицу, что-то типа OrderedGoodsDetails (название лень придумывать), и в нем уже хранил все что связано с этим конкретным заказом. Со связями дело усложняется, но зато дает дополнительную гибкость.
@0neS, возможно вы удивитесь, но настроить nginx+apache+mod_php посложнее задачка, нежели установить и настроит fpm, я думаю с учетом того, через что вы прошли, что бы разобраться с fpm у вас уйдет пара часов. Зато у вас будут бонусные плюшки, аля запуск php от имени владельца файла, а не www-data (или что там апач пихает) без танцев со всякими apache mpm-itk.
@Perzh, по сути время доступа к блочной памяти должно быть сравнимо с временем доступа в регистры, глобальная же памяти очень медленна. А теперь представьте что вы можете ускорить копирование данных для блока в десять раз, и представьте что копирование данных занимает половину времени работы блока.
В любом случае рекомендую попробовать, как одно из основных средств оптимизации.
Нет, у вас узким местом в задаче является поиск элементов при вставке, что бы обеспечить уникальность значения. Для бинарных деревьев операция поиска дешевле, нежели для векторов.