Про второй вариант вообще забудьте, это какой-то адский антипаттерн. Насчёт первого варианта - не волнуйтесь про размер, индексы спасут вас. А вот когда они перестанут вас спасать, вы воспользуетесь шардингом... но к этому моменту вы будете знать про большие данные больше всех в этом обсуждении)) Я бы создал таблицу с пользователями, таблицу с задачами и таблицу соответствия пользователей и задач с составным первичным ключом по этим двум колонкам. И не забыл бы про внешние ключи. Индексы бы делал в обеих таблицах типа автоинкрементируемого bigint (не знаю в терминах mysql) для более компактных и быстрых индексов по сравнению с guid. Если бы это был postgresql, то можно было бы таблицу трансляций сделать вида (пользователь, массив задач), но это плохая практика в плане согласованности данных.