Добрый день. Разбираюсь с флэш памятью w25q32. 4MB. Хочу хранить массив карт mifare. На одну карту 10 байт. В общем будет отведено 100 тыс байт. Карты будут храниться в отсортированном массиве, для быстрого поиска. Если нужно будет добавить новую карту в середину массива. Получается, остальные карты нужно сдвигать, т.е. нужно время на перезапись большого числа ячеек памяти. Можно ли каким то образом этого избежать?
Как вариант: Хранить два массива. Один большой, сортированный. Второй - маленький, не сортированный. Когда нужно добавить новую запись, добавлять во второй массив. Когда там накопится более N значений, то массивы сливаются сортировкой в первый, второй становится пустым.
Итог: Поиск быстрый, т.к. почти все значения лежат в сортированном массиве. Поиск по второму массиву то же быстрый, т.к. там мало значений. Ну и количество стираний уменьшается в N раз.
Добавлено after 17 minutes 49 seconds:
Если те 10 байт, что нужно хранить - это просто ID, то можно применить "фильтр Блума", что может свести количество page erase к нулю.
