Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
Всем привет. Это как бы еще не база, но выполняет некоторые ее функции.
Установка.
1. Подключите файл ds.php из папки lib в свое приложение.
2. Создайте объект класса DS ($var = new DS (путь до БД)), и укажите путь до папки БД (она должна быть пуста).
Методы.
1. clean (данные) - очищает данные от опасных символов.
2. create (имя нновой таблицы) - создает новую таблицу (если ее нет).
3. delete (запись, таблица) - удаляет запись в таблице (если есть).
4. drop (таблица) - очищает и удаляет таблицу.
5. exists (имя, тип = таблица) - проверяет на существование.
Пример: 1. exists (array ('запись', 'таблица'), 'item'); 2. exists ('таблица', 'item');
6. get (поля = все, запись, таблица) - возвращает данные.
7. getConfig (таблица) - возвращает информацию о таблице.
8. merge (array (таблицы), имя = имя первой таблицы) - соединяет таблицы в одну (новое имя = "имя").
9. put (данные, имя, таблица) - создает новую запись, если ее нет.
10. search (текст, таблица) - возвращаят массив записей, содержащих "текст".
11. set (данные, имя, таблица) - обновляет данные в записи, если она есть.
12. truncate (таблица) - очищает таблицу, если она есть.
13. version () - возвращает версию DS.
Скоро добавлю описание к остальным.
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Crate, такое есть: noSQL, mongoDB, memcache
А ваша штука может быть полезной, я не смотрел код, вы в файл пишете JSON?
Тогда будет менее накладным держать в файле чистые сериализованные данные, с ними и работать внутри, и только по внешнему запросу типа SELECT отдавать в формате JSON.
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
CouchDB
хранит данные в json
вьюшки, или как они там называются пишутся на яваскрипте
на нем же написан встроееный вебинтерфейс гда прямо из него можно править Бд.
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
DeepVarvar пишет:
Я тут потестил кой чего:
Есть одна проблемка. {"clone0":{},"clone1":{},"clone2":{},"clone3":{},"clone4":{},"clone5":{},"clone6":{},"clone7":{},"clone8":{},"clone9":{}...}
$property-то где? А нет его, потеряли. Восстанавливается обратно пустой stdObject.
Но на простых массивах JSON ощутимо быстрее, в 2 раза на записи, на чтении - почти на порядок.
----- PostgreSQL DBA
Crate
Отправлено: 05 Июля, 2012 - 22:19:44
Посетитель
Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
Мелкий пишет:
Но на простых массивах JSON ощутимо быстрее, в 2 раза на записи, на чтении - почти на порядок.
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Мелкий пишет:
Есть одна проблемка
Да я только ради неё и писал методы в клонах, вот только о самой проблемке сказать вылетело из головы
А простые массивы да - быстрее, ну на то она и "база" в простом виде без процедур кстати только данные и хранит, а инструмент для её модификации живет отдельно.
Тут таки можно поприкалываться с memcache, он то данные какраз сериализует, а не json'ит. Це - готовый инструмент, чо велосипеды то строить?
Можно пойти и еще дальше, у мемкеша нет (ну не было в той версии с которой я колупался, может уже запилили в новых версиях) возможности лочить данные на момент изменения данных. Я проверял - реально "шарики за ролики" и потеря данных всей цепочки, сохраняет только последний пришедший вариант. Там же всеравно для изменения нужно получать весь блок данных, а затем возвращать измененный блок обратно в мемкеш.
Так вот я нашел для себя самый шустрый способ без сериализации и с возможностью блокировки и постановки в очередь - это shmop.
Кроме того, выделенный блок "шары" еще и доступен для всех копий cli/cgi скриптов, не важно от кого выполняющихся. Эта штука нереально супер - стрессо - устойчива, безотказна и шустра.
Так что все вышеперечисленные варианты, кроме shmop - детский лепет с плугом, парашютом и стоп-краном.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.