1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/web-JsonDB

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

JsonDB

Проект представляет собой:

JsonDB — это файловая база данных, реализованная на чистом PHP. Для работы с ней нужен только один файл. Если вам не нужна сложная и громоздкая система баз данных и достаточно функционала для одного компьютера, то JsonDB может быть оптимальным выбором.

JsonDB подходит для относительно статических данных небольшого объёма, например, информации о регионах.

Документация по использованию: https://gitee.com/web/JsonDB/wikis

Архитектура программного обеспечения:

Это база данных в формате JSON-файла, реализованная исключительно на PHP. Данные хранятся в формате JSON, без использования ресурсов MySQL. Запросы к базе данных выполняются через чтение и запись файлов, аналогично запросам в ThinkPHP. Поддерживается сжатие JSON, что значительно уменьшает занимаемое пространство.

Инструкция по использованию:

<?php
header("content-Type: text/html; charset=utf-8");
include('JsonDB.class.php');
$db = new JsonDB('areazip');
$param=array();
$param['pid']=130;
$param['id']=130;
$param['_logic']='or';
$area=$db->select($param);

$param=array();
$param['name']=array('like','河北');
$area=$db->select($param,1);//增加limit参数 提高效率

$param=array();
$param['id']=130;
$areaname=$db->find($param,'name');

//新增方法 注数据库文件太大时可能会超时可加ini_set('memory_limit','1024M');
$areainfo=$db->findBy(10000,'id',0);//查询字段是id = 10000的数据 最后一个参数为是否为模糊搜索
$db->updateBy(10000,'id',$data,0););//查询字段是id = 10000的数据 并更新成新数据
?>

Поддерживаются следующие типы запросов: eq,neq,like,in,notin,gt,lt,egt,elt. Можно самостоятельно расширять список поддерживаемых запросов.

Параметр _logic определяет логику запроса (and или or).

Пример использования:

https://gitee.com/web/mobileLocation

Тест на эффективность:

Несколько коллег выразили сомнения относительно эффективности системы. Был проведён простой тест на локальном компьютере, чтобы оценить производительность. Вот код теста:

$startTime = microtime(true);
$array=array();
for($i=1; $i<=100000; $i++){
    $array[]=array("id"=>$i,"name"=>"name".$i,"pinyin"=>$i,"pid"=>"0","status"=>"0","sort"=>"0","temp"=>"","letter"=>"\ufeffZ","level"=>"0","region"=>"0");
}
$area=$db->add($array,1);
$endTime = microtime(true);
echo '添加成功,耗时: ' .(($endTime - $startTime)*1000) . 'ms';
//耗时: 597.57590293884ms  612.07795143127ms

$startTime = microtime(true);
$param=array();
$param['id']=100000;
$area=$db->select($param);
print_r($area);
$endTime = microtime(true);
echo '查询成功,耗时: ' .(($endTime - $startTime)*1000) . 'ms';
//耗时: 1074.1360187531ms

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

JsonDB — это файловая база данных, реализованная на нативном PHP. У JsonDB есть только один файл. Если вам не нужна масштабная система баз данных и достаточно односерверной функциональности, то JsonDB будет оптимальным выбором. JsonDB поддерживает только функции инициализации записи и запроса, поэтому подходит для относительно статических данны... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/web-JsonDB.git
git@api.gitlife.ru:oschina-mirror/web-JsonDB.git
oschina-mirror
web-JsonDB
web-JsonDB
master