2009-09-21 1 views
-4
$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 туда и обратно.Что вы будете делать, чтобы оптимизировать производительность MySQL в этом случае?

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

+2

Какова структура каждой таблицы. У них что-то общее? –

+0

Нет, ничего общего. – omg

+0

Время, чтобы похудеть, время, чтобы очистить. -1 –

ответ

1

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

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

0

Вы можете попробовать UNION:

$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, это не моя область знаний :)

+0

Кажется, он будет работать только тогда, когда номера столбцов совпадают. Что если нет? – omg

+0

Тогда вы ввернуты. –

+0

Вы имеете в виду решение? – omg

 Смежные вопросы

  • Нет связанных вопросов^_^