---
title: "Optimera PHP SQL-kod?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/131846-optimera-php-sql-kod"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Kenchu"
published: "2005-07-25T14:58:52.000Z"
updated: "2006-02-19T12:43:11.000Z"
replies: 7
views: 935
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/131846-optimera-php-sql-kod"
---

# Optimera PHP SQL-kod?

## #1 — Kenchu, 2005-07-25T14:58Z

Tjenna,

jag bara undrar om det finns något sätt att optimera koden för PHP med MySQL. Om det finns liksom några speciella kommandon eller så jag inte känner till. För just nu blir mina sidor jag kodar med PHP och SQL väldigt sega, och om det beror på min kod eller servern vet jag inte. :D

Hur som helst... Det gäller SELECT-queries... Mallen, just för mig, brukar se ut något i den här stilen:

```php
$conn = mysql_connect("","","");
mysql_select_db("");

$result = mysql_query("
   SELECT *
   FROM tabell
   WHERE något = något annat
   ORDER BY något
");

while ($row = mysql_fetch_array($result)) {
   echo "{$row["något"]} {$row["något"]}";
}

mysql_free_result($result);
mysql_close($conn);
```

 

Min fråga är nu om det finns något bättre sätt att göra detta på... Finns det? :D Eller har ni några andra tips/förslag?

Tack tack

Permalänk: https://www.webforum.nu/p/131846

## #2 — Helmertz, 2005-07-25T15:16Z

På php.net [står det i kommentarerna](http://se.php.net/mysql_free_result) att mer minne används om man använder sig av mysql_free_result..

Permalänk: https://www.webforum.nu/p/1648502

## #3 — oHLLe, 2005-07-26T17:04Z

Det kan också vara så att det fält du sorterar efter inte har något index. Då kan frågan bli slö att exekvera.

Permalänk: https://www.webforum.nu/p/1648721

## #4 — Bäckman, 2005-08-01T10:16Z

Istället för...

```php
while ($row = mysql_fetch_array($result)) {
```

...kan du använda...

```php
while ($row = mysql_fetch_assoc($result)) {
```

Med mysql_fetch_array() så kan man skriva både $row\[0\] och $row\['fältnamn'\] för att få fram första fältet. Det borde då vara effektivare att använda mysql_fetch_assoc() om man bara vill kunna skriva $row\['fältnamn'\] då den andra vektorn inte skapas. Kanske ingen gigantisk prestandaförbättring utan mera finlir.  :)

Permalänk: https://www.webforum.nu/p/1649911

## #5 — K@llen, 2005-09-09T21:12Z

Byt ut \* mot de fält/kolumnnamn du ska hämta. Det är onödigt att hämta mer data än nödvändigt. :)

Permalänk: https://www.webforum.nu/p/1670370

## #6 — Hansen, 2005-09-12T09:29Z

> **K@llen skrev:**
>
> Byt ut \* mot de fält/kolumnnamn du ska hämta. Det är onödigt att hämta mer data än nödvändigt. :)

Kan inte instämma mer! 

Se också till att du har nödvändiga index på kolumnerna som du sorterar efter. MySQLs [EXPLAIN](http://dev.mysql.com/doc/mysql/en/explain.html) är din vän vid optimering.

Permalänk: https://www.webforum.nu/p/1670971

## #7 — Duffer, 2005-09-12T12:06Z

en annan bra minnesregel är att tänka på att sql läses baklänges, så de attributen som kan solla bort mest data ska stå sist i sql-satsen.

Permalänk: https://www.webforum.nu/p/1671033

## #8 — learn, 2006-02-19T12:43Z

> **Duffer skrev:**
>
> en annan bra minnesregel är att tänka på att sql läses baklänges, så de attributen som kan solla bort mest data ska stå sist i sql-satsen.

 (y)

Permalänk: https://www.webforum.nu/p/1769630

---

Tråden på webben: https://www.webforum.nu/amne/php/131846-optimera-php-sql-kod
