Очевидный способ хранения матрицы разреженной в SQL - это использование трех столбцов, где user
и product
вместе являются первичным ключом, а дополнительный столбец - рейтингом.
Нет смысла проводить фактическую обработку с базой данных SQL. Это просто огромные накладные расходы и замедляет работу. Просто выведите данные в примитивную и быструю структуру данных, проведите анализ, а затем, в конечном итоге, переведите выходные данные в любой нужный выходной формат.
SQL хорош, когда вам нужна только часть данных или нужно внести изменения, нужна блокировка и все такое. Но я бы никогда не запустил вычисления непосредственно в базе данных, потому что если вы не сможете загрузить низкоуровневые библиотеки линейной алгебры в свою базу данных, это будет медленным.