Сергей Соколов, остался пустяк. Захардкодить таблицы брадиса в js. Но как говорил начальник Махачкалинского РОВД - "И тем не менее...." без тригонометрии.
Wataru, да. Если нам повезло например с размером. Дан массив где ключи заранее отсортированы и их количество совпадает с количеством слотов будущего дерева - то мы можем сделать эдакий bulk-insert в дерево с сохранением всех свойств.
Мы можем ввести метрики улучшаемости дерева. Например - количество узлов которые выполняют неравенство правого-левого ключей и количество узлов которые имеют неверную высоту. Далее - случайным образом делаем свап двух ключей и наблюдаем улучшились ли метрики или нет. Как метод отжига.
Тут надо сначала спросить что из себя представляет это взаимодействие? Это инжекция? Код внутри другого процесса? Сетевое взаимодействие? В таком кейсе процесс сервер открывает TCP/IP socket, Unix-socket. Или это IPC (inter-process-communication)? или в Windows тоже есть своя технология именованных каналов. В более продвинутом варианте в Linux есть D-Bus - такой себе универсальный протокол обмена сообщениями между всеми процессами ОС и даже между окошками.
Вобщем автор иди и ищи КАК оно взаимодействует. Без этого обсуждение будет просто гаданием.
Anton B, я тебе предлагаю просто зайти в фолдер по SSH. И сделать git init. И начать трекать изменения вручную. И просто понаблюдать глазами что происходит. Какие возможны ситуации. Надо учитывать что вместо разработчика меняющего код - у нас sftp демон который ничего не знает про версионный контроль. Возможны разные ситуации которые просто мы не предусматривали. Всякие переименования фолдеров по 100000 файлов и прочие неприятности.
Вадим, найди любую бизнес-логику где пользователь что-то вводит в ячейку. И это "что-то" попадает в билдер запросов. И если это что-то никак не экранируется служебными эскейп-последовательностями - то поздравляю. Ты нашел уязвимость. Заводи critical issue. И тебе дадут бейджик. Или премию.
Я спросил про Java, потому что краем уха слыхал что манкрафт на ней написан. Вот я и подумал что возможно ты как-то с этим соприкоснулся. Извини если я тебя обидел. Просто я привык говорить более предметно. Чтоб был код.
Твой вопрос про камни и снег он пока не имеет никакого программного воплощения. Поэтому он - непонятен для большинства читающих. Я мог-бы накидать тебе советов по поводу градиентов или камней с альфа-каналом - но это всё мои чортовы фантазии. Они - беспредменты. Ну что мне - карандашом писать формулы?
Помоги внести в этот топик больше предметности. Исходник. Show me code, как говорил один финн.
kuza2000, верно. У меня тоже. Видимо от версии SQLite зависит. Теперь подсчет можно сделать не по байтам а по блокам. Моя логика такая. Если блок полностью пуст - то он не используется. И твой подсчет занимаемого места тоже долже базироваться на этом явлении.
Тебе надо фактически учитывать не длину файла. Потому что длина это фейк. Это ватерлиния. А считать занятые блоки. Вот это и будет полезная инфа к оценке объема.
kuza2000, ты уже узнал какой размер page наша версия SQLite использует? Внутри файла есть протяженность страниц которые вообще ничем не заполняются. Это либо пустое пространство между сегментами таблицы и индекса либо какая-то пре-аллокация. Кстати SQLite файл это не совсем формат внешнего файла. Это - зеркало памяти. MemoryMapping. В этом формат файла сильно отличается от Оракла например где внешний файл это именно файл а не память.
Ты вопрос правильно поставь. Если тебе нужен подсчет повторяющихся - то зачем ты в итоге печатаешь НЕ-повторяющиеся?! Или ты хочешь быть умнее тех что тебе ответит? Хочешь дальше что-то сделать? Так скажи что будет в самом конце? Может тебе вообще это не надо.
Я советую тебе и мне почитать формат файла SQLite https://www.sqlite.org/fileformat.html
я думаю там будут ответы на все вопросы. Я уже устал экспериментировать.
Я просто лишний раз подтвердаю своё мнение что БД ставит своей задачей в первую
очередь регулировать скорость доступа к блокам (blocks, pages) данных а уже потом
позволяет тебе играть с экономией ресурсов.
Для экономии данных - почитай про BigData форматы Apache Parquet, Apache Orc вот у них все там в полном
пакете. И сжатие GZip/SNappy и вертикальная организация и упаковка sequences. Вот. Но если ты решил
гонять inserts/updates по ним - то сразу мимо кассы. Они не предназначены для этого.