en sağlıklı yönrem veritabanından sayfalama yaparak verileri çekmeniz ve işlemeniz. en çok kaybı orada yaşıyorsunuzdur. bunun dışında sorgu sonucunda tüm verileri tek seferde encode etmek yerine foreach içerisinde sadece her bir satırı jsona çevirip ekrana basmanız az da olsa bir performans kazancı sağlayacaktır diye düşünüyorum. sizin örneğe göre:
<?php
$dbh = new PDO("mysql:host=localhost;dbname=hastag", "root", "");
$stmt = $dbh->query("SELECT id, name,surname, birth, ip FROM koop WHERE ip like 'KAPI' ORDER BY birth");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '{"data":[';
foreach ($rows as $row) {
$list = array();
$list["id"] = $row["id"];
$list["name"] = $row["name"];
$list["surname"] = $row["<font color="#000000"><font face="Open Sans">surname</font></font>"];
$list["ip"] = $row["<font color="#000000"><font face="Open Sans">ip</font></font>"];
echo json_encode($list);
}
echo ']}';
?>