¿Alguna optimización para el acceso aleatorio en una matriz muy grande cuando el valor en el 95% de los casos es 0 o 1?

¿Hay alguna optimización posible para el acceso aleatorio en una matriz muy grande (actualmente uso uint8_t, y estoy preguntando qué es mejor) uint8_t MyArray[10000000]; cuando el valor en cualquier posición de la matriz es 0 o 1 para el 95% de todos los casos, 2 en 4% de los casos, entre 3 y...