Podle mého názoru vedete špatnou bitvu. Máte obavy z dopadu na výkon uložením celého čísla místo jednoho pole znaků, což je podle mého názoru krátkozraké myšlení. Skutečný dopad na výkon celého čísla vs. jednoho znaku je triviální a pochybuji, že to lze smysluplně měřit. Podle mých zkušeností je důležitější snížit kognitivní zatížení vývojářů a uživatelů systému, a proto je lepší používat znaková pole, která jsou dostatečně dlouhá, aby obsahovala přiměřený popis stavu, namísto číselných hodnot nebo jednoznakových zkratek. To, že si nemusíte pamatovat, co znamenají 1, 2, 'A' nebo 'X', je velmi užitečné. Namísto těchto zkrácených hodnot doporučuji používat snadno srozumitelné hodnoty, jako jsou 'READY', 'ACTIVE', 'PROCESSED', 'CANCELLED' atd.
Pokud jde o druhou část otázky - vlastně ne. Přesunutí delšího řetězce může trvat trochu triviálně, ale je to triviální, pokud nemluvíte o milionech hodnot.
Hodně štěstí.