Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   select при 100.000 строк в таблице. (https://forum.antichat.xyz/showthread.php?t=115271)

rcc0023 10.04.2009 16:50

select при 100.000 строк в таблице.
 
Можно каким нибудь хитроумным запросом брать из такой таблицы со скоростью, как при запросе в маленькую таблицу?

rcc0023 10.04.2009 16:56

То есть есть большая таблица, 100.000 строк. Определенные записи запросом:
$q=mysql_fetch_array(mysql_query('SELECT * FROM '.$table.' WHERE user_id='.$g['user_id'].' LIMIT 1'));
грузятся очень долго...

Forcer 10.04.2009 17:16

таблица проиндексирована?

rcc0023 10.04.2009 17:25

да!

Gifts 10.04.2009 17:26

Вопрос - столь ли необходимо читать все 100к записей?

И, эээ, зачем делать 100к запросов, логично что они будут тормозить.

PHP код:

$query=mysql_query('SELECT * FROM '.$table.' WHERE 1');

while (
$row=mysql_fetch_array($query))
{
print_r($row);



rcc0023 10.04.2009 17:31

Так я от туда беру максимум 30 записей... но выводятся они от 5ти секунд, бывает и все 10.

хотелось бы услышать о выборке одной определенной строки..

Gifts 10.04.2009 17:41

rcc0023 Вы просто пытаетесь нивелировать достоинства мускуля

PHP код:

// Сам запрос один штука
// Например выведем все строки, для user_id между 20 и 30
$query=mysql_query('SELECT * FROM '.$table.' WHERE user_id>=20 and user_id<=30');

while (
$row=mysql_fetch_array($query))
{
print_r($row);
}  
// А теперь строки, у которых user_id находится в списке

$query=mysql_query('SELECT * FROM '.$table.' WHERE user_id in (1,25,32,42,54)');

while (
$row=mysql_fetch_array($query))
{
print_r($row);


Почитайте http://www.mysql.ru/docs/man/SELECT.html и что именно делает функция mysql_fetch_array

MuXaJIbI4 10.04.2009 17:50

а какие у тебя в этой таблице есть индексы ... может они просто не используются

geezer.code 10.04.2009 17:53

Индексировать нужно те поля, по которым ведется поиск.
зы может это уже не мускул лагает, а сама тачка(мало опёры, слабый проц, параллельно играешь СоD4)

rcc0023 10.04.2009 18:12

Индекс первичный... с auto_increment
вы меня запутали.... получается все правильно сделано, только вся проблема в сервере и кол-ве строк?

p.s. оперы на 1000мб, на кроне висят скрипты постоянно что то добавляющие в базу..


Время: 23:22