Если данных очень много, то лучше использовать Mongo, она не тормазит при разростании.
Если в приделах разумного, то MySql
Для MySQL советую такую схему:
Каждая строка соответствует одному устройству, данные хранятся в полнотекстовом поле в виде
{ 'timestamp': '', 'value':'', {… }},{ 'timestamp': '', 'value':'', {… }},{ 'timestamp': '', 'value':'', {… }},…
Каждую запись добавляем коммендой
$query="INSERT INTO `bd`.`table` ( `json`,`keyid`)
VALUES ("{ \"timestamp\": \"\", \"value\":'', {… }}', '".$keyid."')".
" ON DUPLICATE KEY"." UPDATE `json` =CONCAT(`json`,',{ \"timestamp\": \"\", \"value\":'', {… }}'), keyid='".$keyid."'" ;
тем самым в поле будет дописываться очередное значение Json.
А когда будете запрашивать из базы
$res="{'hist':[".row['json']."]}";
$poll=json_decode($res);
$poll->hist — и будет сам набор данных
Если нужны будут комментарии, или что-то не будет из этого работать, пишите в личку, помогу.