Data Science. SQL hub
Фотография
нажмите — покажем
нажмите — покажем
Как SQLite превращает числа в текст по две цифры за раз
Обычное преобразование целого числа в строку извлекает цифры по одной с помощью деления на 10 и остатка % 10.
В SQLite используется таблица sqlite3DigitPairs - строка длиной 200 байт со всеми парами от 00 до 99:
"00010203040506070809"
"10111213141516171819"
...
"90919293949596979899"
Алгоритм берёт две цифры сразу и копирует готовую пару по вычисленному индексу. Это сокращает количество делений и итераций при форматировании i64 и u64.
Небольшая оптимизация внутри sqlite/src/util.c, которая особенно заметна на миллионах преобразований.
14 · 3.4K ·