Jak z niczego innego, odpowiedź brzmi "to zależy".
Najpierw należy ustalić, czy właściwe jest przechowywanie w pełni zakodowanych JWT. Zwykle nie przechowuję łańcucha JWT, a zamiast tego przechowuję oświadczenia użyte do skonstruowania JWT, co pozwoli zaoszczędzić mnóstwo miejsca w bazie danych.
Jeśli zdecydujesz, że przechowywanie JWT jest właściwą metodą, możemy spojrzeć na twoje opcje.
TEKST i LONGTEXT są po prostu typami CLOB, więc możemy zignorować ten.
Obydwa TEKSTY i VARCHAR mają ograniczenia 64 kb, więc wszystko powyżej będzie wymagało LONGTEXT (lub MEDIUMTEXT, o którym nie wspomniałeś, ale jest opcja).
Różnica między TEKSTEM a VARCHAR polega na tym, że VARCHAR jest przechowywany w wierszu, ale TEKST jest w zasadzie wskaźnikiem. VARCHAR będzie szybszy, jeśli będziesz często czytał JWT, ale większe ciągi sprawią, że każdy pojedynczy wiersz będzie większy, co będzie hitem wydajności.
Zwykle tak duże, jak JWT, powiedziałbym, że TEXT jest całkiem dobrym wyborem do przechowywania JWT w bazie danych. Jeśli masz całkowitą pewność, że te Śledztwa będą bardzo małe, to VARCHAR może zapewnić lepszą wydajność odczytu, ale najlepiej byłoby przetestować dane z prawdziwego świata, aby mieć pewność.
Jeśli potrzebujesz pola większego niż TEKST, możesz powtórzyć moje zalecenie, aby uniknąć zapisywania zakodowanych JWT, ale opcja LONGTEXT jest tam dostępna.
Czy JWT nie wymaga przechowywania w bazie danych? – ceejayoz
@ceejayoz Odświeżanie tokenów może być również samymi JWT i uważam, że trzeba je przechowywać w magazynie danych. – georaldc