мне не приходилось делать пагинацию на несколько мио, да и смысла в этом не вижу. запрос должен возвращать макс пару тыс записей. когда больше нужно отдельно разбираться.WMix, ты просто не писал пангинацию с таблицами, в которых несколько миллионов записей -- твой вариант просто положит сервер
order by может и есть смысл убирать, да вот полько случайно order by в subselect'е не зацепи, select 1 тоже не всегда возможно бывает select field having field.Ну я бы как минимум с этим способом менял список выбираемых полей на select 1 и убирал order by.
если это нельзя пофиксить в одном месте, то проблема вовсе не в SELECT. Если ты используешь Redis для очередей, то это не значит, что через год он будет справляться.
у нас день подражания Кличко или я пропустил общую пьянку?да вот полько случайно order by в subselect'е не зацепи, select 1 тоже не всегда возможно
grigori, «ты просто не писал обработчиков очередей на несколько тысяч сообщений в секунду — твой вариант просто положит сервер, тимлид задумается о твоей замене, а в следующие полгода получит кто-то другой».WMix, ты просто не писал пангинацию с таблицами, в которых несколько миллионов записей -- твой вариант просто положит сервер, DBA или тимлид задумаются о твоей замене, а премию в следующие пол-года получит кто-то другой
Погодь, а что там унутре датабазы-то происходит?это как раз совсем не глупо, но далеко не всегда возможно, убери пагинацию с форума... но тема исчерпана, я было ожидал услышать что это хреновый способ select в select заворачивать
select * from products where category_id = 42 /* order by price asc */
select count(*) from (
select * from products where category_id = 42
) as t
Интересно, а как тут лимиты помогают. Лимиты все-равно применяются после сортировки, т.е разница лишь во времени доставки данных на клиент, разве нет?но от запроса на выборку всех записей по ним без лимита падает 12-ядерный сервак с 128 гб памяти
$sql = "INSERT INTO main ".
"(TIME_GET,NAME,C_1,C_2,C_3,NAME2,P_MET,P_CR,UID,NICK,STATUS,RAITING)".
"VALUES ('$timeget','$pl[0]','$coord[0]','$coord[1]',
'$coord[2]','$name2','$p_met','$p_cr','$uid','$nick','$status','$rating')";
echo $sql."<br>";
$query = $db->query($sql);
INSERT INTO main (TIME_GET,NAME,C_1,C_2,C_3,NAME2,P_MET,P_CR,UID,NICK,STATUS,RAITING)VALUES ('2015-1-10 11:24:45','SUPERSTAR','1','1', '1','','0','1000','25996','sea','','370')
Всем здрасте. Начал использовать ваш скрипт.
Где-то читал что query() в данном классе может по предложенным данным выбрать делать update или insert как реализовать?
$data = array( 'data1'=>$data1, 'data2'=>$data2);
$sql = "UPDATE table SET ?u where .........";
$db->query($sql, $data);
$data = array( 'data1'=>$data1, 'data2'=>$data2);
$sql = "INSERT INTO table ?u";
$db->query($sql, $data);
И сразу неправильно.Всем здрасте. Начал использовать ваш скрипт.
$data = array(
'TIME_GET' => $timeget,
'NAME' =>$pl[0],
// и так далее
);
$sql = "INSERT INTO table ?u";
$db->query($sql, $data);
Ничего такого эта функция не умеет.Где-то читал что query() в данном классе может по предложенным данным выбрать делать update или insert как реализовать?
http://phpfaq.ru/examples#multiinsertА еще как быть с множественным инсертом, возможен ли он и как выглядит код, пример можно?