64-битное целое - это все, что вам нужно.
Если bigint имеет максимальное значение 9,223.372.036.854.775.807, то это предполагает 64-разрядное целое число со знаком, что вполне достаточно.
Из описания не похоже, что 32-разрядные целые числа будут делать то, что вам нужно, поэтому, если вам на самом деле не нужно поддерживать большие размеры, чем 9.223.372.036.854.775.807, то bigint - это наиболее эффективная форма из возможных выбрать.
Если вам нужны большие значения (я не могу себе представить, почему), то вам нужно либо сохранить его как строку, либо найти библиотеку большого числа, которая будет использовать столько байтов, сколько необходимо для хранения числа ( т.е. не имеет максимального размера).