Что вы будете делать для оптимизации производительности MySQL в этом случае? - PullRequest
0 голосов
/ 21 сентября 2009
$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;
}

3 запроса извлекают несколько строк с различной структурой, 3 запроса нужно 3 туда-обратно, 10 запросов потребуется 10 туда-обратно.

Как вы будете оптимизировать этот случай?

Ответы [ 2 ]

1 голос
/ 21 сентября 2009

Выберите столбцы, которые вам действительно нужны, вместо выбора *

Кроме этого, не так много, чтобы сказать, не зная, какие данные вам нужны и как они связаны.

0 голосов
/ 21 сентября 2009

Вы можете попробовать СОЮЗ:

$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;
}
}

простите мой php, это не моя область знаний:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...