Надежный и эффективный ключ - оценивает базу данных за Linux? [закрытый]

@dagorym: Ай, человек. Я зависал на это как польза, "я скучаю, что я могу обдумать" загадку. Я придумал свой оперативный код перемещения, но добрался здесь для нахождения Вашего в значительной степени идентичным моему... ах, хорошо. Здесь это находится в Ruby.

require 'pp'
n = 10
a = []
n.times { a << (1..n).to_a }

pp a

0.upto(n/2-1) do |i|
  i.upto(n-i-2) do |j|
    tmp             = a[i][j]
    a[i][j]         = a[n-j-1][i]
    a[n-j-1][i]     = a[n-i-1][n-j-1]
    a[n-i-1][n-j-1] = a[j][n-i-1]
    a[j][n-i-1]     = tmp
  end
end

pp a
39
задан 21 revs, 4 users 97% 23 May 2017 в 10:29
поделиться

9 ответов

Мне повезло с решением Tokyo Cabinet / pytc. Это очень быстро (немного быстрее, чем использование модуля полки с использованием anydbm в моей реализации) как для чтения, так и для записи (хотя я тоже читаю гораздо больше). Проблемой для меня была спартанская документация по привязкам Python, но есть достаточно примеров кода, чтобы понять, как делать то, что вам нужно. Кроме того, tokyo cabin довольно легко установить (как и привязки python), не требует сервера (как вы упомянули) и, кажется, активно поддерживается (стабильно, но больше не находится в активной разработке). Вы можете открывать файлы в режиме только для чтения, разрешая одновременный доступ, или в режиме чтения / записи, не позволяя другим процессам обращаться к базе данных.

Летом я рассматривал различные варианты, и тогда я получил следующий совет: попробуйте различные варианты и посмотрите, что лучше всего подходит для вас. Было бы неплохо, если бы был просто «лучший» вариант, но все ищут немного разные функции и готовы идти на разные компромиссы. Вы знаете лучше всех.

(Тем не менее, было бы полезно для других, если бы вы рассказали, что в итоге сработало для вас лучше всего, и почему вы выбрали это решение среди других!)

И тогда я получил следующий совет: попробуйте разные варианты и посмотрите, что лучше всего подходит для вас. Было бы неплохо, если бы был просто «лучший» вариант, но каждый ищет немного разные функции и готов идти на разные компромиссы. Вы знаете лучше всех.

(Тем не менее, было бы полезно для других, если бы вы рассказали, что в итоге сработало для вас лучше всего и почему вы выбрали это решение среди других!)

Тогда я получил следующий совет: попробуйте разные варианты и посмотрите, что лучше всего подходит для вас. Было бы неплохо, если бы был просто «лучший» вариант, но каждый ищет немного разные функции и готов идти на разные компромиссы. Вы знаете лучше всех.

(Тем не менее, было бы полезно для других, если бы вы рассказали, что в итоге сработало для вас лучше всего и почему вы выбрали это решение среди других!)

2
ответ дан 27 November 2019 в 02:54
поделиться

как насчет dbm.ndbm Python 3.0?

1
ответ дан 27 November 2019 в 02:54
поделиться

Я использовал bsddb.hashlib () с Python, он работал довольно хорошо.

0
ответ дан 27 November 2019 в 02:54
поделиться

Возможно, вам понравится djb cdb , у которого есть указанные вами свойства.

0
ответ дан 27 November 2019 в 02:54
поделиться

как насчет SQLite?

0
ответ дан 27 November 2019 в 02:54
поделиться

Еще одно предложение - TDB (часть проекта Samba). Я использовал его через модуль tdb , но не могу сказать, что проверял его надежность на сбоях; проекты, в которых я его использовал, не имели таких требований, и я не могу найти соответствующую документацию.

1
ответ дан 27 November 2019 в 02:54
поделиться

cdb может обрабатывать любую базу данных размером до 4 ГБ, что делает ее слишком малой для имеющихся 20 ГБ.

2
ответ дан 27 November 2019 в 02:54
поделиться

В моем запросе на кроссплатформенную базу данных в стиле ISAM (аналогично) я также получил предложения для встроенной версии Firebird и GLib .

0
ответ дан 27 November 2019 в 02:54
поделиться

Riak работает в Linux и позволяет динамически добавлять узлы

2
ответ дан 27 November 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: