So habe ich eine Datenbank von 20mil + Zeilen, und ich brauche eine Suchfunktion. Also ich habe einen PDO-Code zu suchen, und wenn der gesuchte Benutzername in der Datenbank ist, ist es nicht sehr schnell aber gut, etwa 0,9 Sekunden. Aber wenn der gesuchte Benutzername nicht in der Datenbank ist, dauert es mehr als 10 Sekunden.Langsame PHP-Suche in der Datenbank
Hier ist mein Code:
$p = $_GET["p"];
$conn = new PDO("mysql:host=localhost;dbname=x", "x", "x");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth = $conn->prepare("SELECT `id` from `dbsearch` WHERE `username` = :p LIMIT 1");
$sth->bindParam(':p', $p);
$sth->execute();
$result = $sth->fetchAll();
if($result)
{
foreach($result as $row)
{
echo $row["id"];
}
}
else {
echo "none";
}
ich dafür auf Stackoverflow gesucht und ich konnte nur Dinge wie Sphinx finden, was für mich nicht möglich ist, da ich auf einem Shared-Hosting-bin (Namecheap)
Wer kann mir helfen? Danke.
Haben Sie einen Index für die Spalte Benutzername? –
@kylek Ich bin nicht sehr gut in SQL oder Dinge auf diese Weise, ich glaube nicht, dass ich einen Index habe. Wie füge ich das hinzu und muss es nur in der gesuchten Spalte (Benutzername) oder auf allen sein? – wtm