Bu durumda MySQL performansını optimize etmek için ne yapacak?

2 Cevap php
$query = "select * from a ...";
if($result = mysql_query($query,$con))
{while($row = mysql_fetch_array($result);)
		$arr[0][] = $row;
}
$query = "select * from b ...";
if($result = mysql_query($query,$con))
{
	while($row = mysql_fetch_array($result);)
		$arr[1][] = $row;
}
$query = "select * from c ...";
if($result = mysql_query($query,$con))
{
	while($row = mysql_fetch_array($result);)
		$arr[2][] = $row;
}

The 3 queries retrieves multiple rows with different structure, 3 queries need 3 round-trip, 10 queries will need 10 round-trip.

Nasıl bu durumda optimize eder?

2 Cevap

Gerçekten yerine select ihtiyaç sütunları seçin *

Bunun dışında, ne gerek veri bilerek ve nasıl ilişki olmadan söylenecek çok fazla değil.

Sen bir UNION deneyebilirsiniz:

$query = "SELECT 'a' AS tablename, a.* FROM a
UNION
SELECT 'b' AS tablename, b.* FROM b
UNION
SELECT 'c' AS tablename, c.* FROM c";
if($result = mysql_query($query,$con))
{while($row = mysql_fetch_array($result);)

switch ($row['tablename']) {
    case "a":
        $arr[0][] = $row;
        break;
    case "b":
$arr[1][] = $row;
        break;
    case "c":
        $arr[2][] = $row;
        break;
}
}

Benim php pardon, o benim uzmanlık alanım değil :)