Witam :) Próbuję wygenerować hurtowo wiele rekordów i wstawić je do bazy danych PostgreSQL. Wpadłem na pomysł żeby zrobić to za pomocą REST API którą napisałem w php. Na potrzeby generowania danych i wstawienia ich do bazy danych napisałem taką prostą funkcje z użyciem pętli for. Problem w tym że inserty zamiast wykonać się po 1000 razy czasem wykonują się 2000 razy. Z czego to wynika i czy da się to naprawić? Ewentualnie w jaki inny sposób mogę wygenerować szybko te dane i je wstawić? Z góry dziękuję.
public function addMobile(){
$time= 1514764800;
$dbcontroller = new DBController();
for($i=0; $i < 1000; $i++)
{
$value1 = rand(-10,40);
$value2 = rand(-30,40);
$value3 = rand(-30,50);
$value4 = rand(-10,40);
$value5 = rand(-20,35);
$time+=3600;
$query = "insert into measurements(nodeId, data, createdAt) values (13, '[{\"localId\":1,\"value\":".$value1."}]',to_timestamp(".$time.")) ";
$dbcontroller->executeAddQuery($query);
}
}
A to klasa DBController:
<?php
class DBController {
private $conn = "";
function __construct() {
$conn = $this->connectDB();
if(!empty($conn)) {
$this->conn = $conn;
}
}
function connectDB() {
$conn = pg_connect("host=localhost dbname=iot user=user password=baza");
return $conn;
}
function executeSelectQuery($query) {
$result = pg_query($this->conn,$query);
while($row=pg_fetch_assoc($result)) {
$resultset[] = $row;
}
if(!empty($resultset))
return $resultset;
}
function executeAddQuery($query) {
$result = pg_query($this->conn,$query);
}
}
?>