Здесь нет ничего плохого в СУБД: важно не получать данные, а сообщать об этом впоследствии, и из вашего описания невозможно определить, каковы будут ваши потребности.
Что касается хранения результатов 300x300: вам нужно записывать только реакции, а не каждый тест.Это и то, как далеко вы прошли через матрицу в своем тестировании.
Обратите внимание, что записи 90k не очень большие данные, поэтому вы можете сохранить все, если хотите.
Редактировать: все, что вам нужно, это пара таблиц:
Elements
--------
ItemID
... -- whatever identifying info you need
Crossref
--------
ItemX int
ItemY int
Results -- whatever data you need
Для чего это стоит: если кортеж {ItemX, ItemY} эквивалентен {ItemY, ItemX}, то вывы не проводите сравнения 300x300, вы делаете (300 + 299 + 298 + ... + 1) = 45150.