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 )