HomoUbuntos
клуб заведен 06-12-2011
постоянные читатели [1]
Снорк
участники [1]
Снорк
закладки:
цитатник:
клуб:
Пятница, 23 Декабря 2011 г.
Daria Grishchenko: профчятов знаешь ли
блиц-опрос. что медленнее: два простых запроса в бд, или один с джойном?
Anton Newman: join
быстрее
книжка мне так сказаль
ForJest: не всегда
в целом зачастую 2 простых запроса лучше
сильно зависит от самого запроса и индексов
http://phpclub.ru/detail/article/mysql_optimize
вот нубская статья, почитайте
я в большинстве случаев делаю так:
допустим мне нужно вывести список заказов
у заказа может быть город, страна и т.п. в связаных таблицах
но мне нужно вывести всего 25 заказов на странице по порядку
поэтому джоин в этом случае не имеет смысла
лучше сделать с подзапросом
либо получить просто id заказов и новым запросом уже связать всю остальную инфу, т.е. решение

SELECT * FROM order AS o
INNER JOIN gid_city AS c ON c.id = o.id_city
INNER JOIN gid_country AS cn ON cn.id = o.id_country
INNER JOIN customer AS cm ON cm.id = o.id_customer
LIMIT 50, 25


сначала сформирует избыточный рекордсет
а потом наложит на него уже LIMIT
плюс это потянет за собою джоины и анализ индексов для всех 4-х таблиц гораздо лучше сделать

SELECT id FROM order AS o
LIMIT 50, 25


этот запрос будет очен быстрым, т.к. юзается только примари индекс
и потом

SELECT * FROM order AS o
INNER JOIN gid_city AS c ON c.id = o.id_city
INNER JOIN gid_country AS cn ON cn.id = o.id_country
INNER JOIN customer AS cm ON cm.id = o.id_customer
WHERE o.id IN (1,2,3,4,5,6)


либо равносильное решение

SELECT * FROM order AS o
INNER JOIN gid_city AS c ON c.id = o.id_city
INNER JOIN gid_country AS cn ON cn.id = o.id_country
INNER JOIN customer AS cm ON cm.id = o.id_customer
WHERE o.id IN (SELECT id FROM order LIMIT 50, 25)


такое будет работать быстрее

Состояние какое-то
01:03 HomoUbuntus » Почему у меня не работает запрос в SQL?
Если у вас в MySQL или PHPMyAdmin SQlные запросы выдают постоянную ошибку и вообще неясно почему это происходит, то после очередной ошибочной команды в PHPMyAdmin вводите:

SHOW ENGINE INNODB STATUS
Options > full text > go


и вам выдается подробное описание причин ошибки.

Состояние голова болит
Четверг, 22 Декабря 2011 г.
04:31 HomoUbuntus » END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE
Если появилось вот такое окно при установке шрифтов Windows'a



и кнопка "Ок" не кликабельна, нужно нажать Tab, а потом Enter

Состояние сонное
02:08 HomoUbuntus » Обновление системы
sudo apt-get upgarde

по моим наблюдениям, всё, что вы хотите получить из вне, у этого самого вне надо требовать сомандой apt-get, а следом - объект требования.

Состояние сомнамбулическое
Создать ярлык на рабочем столе

Состояние сомнамбулическое
Среда, 7 Декабря 2011 г.
sudo rm -rf /
ссылка на статью
stokito: эта команда охуенно место на диске освобождает удаляя всякие временные и битые файлы.
Вторник, 6 Декабря 2011 г.
Ксю: а почему у меня иногда теряется автозаполненное имя от которого я пишу?
stokito: это значит у тебя программа запущена
открой новую консоль и в ней работай
если хочешь прервать программу нажми Ctr+C или Ctr+Break

UPD: или просто закрыть консоль.
вообще, если хотите запустить программу непривязанную к консоли из самой консоли, нужно перед названием запускаемой программы вводить nohup, а в конце ставить &
Пример:

$ nohup gnome-calculator &

Теперь приложения остались работать и не закрылись. Команду nohup можно использовать, но есть приложения с которыми она не срабатывает. Например, браузер Opera. Набрав, nohup opera & и закрыв терминал, Opera также завершит свою работу.

Дальше тут
Закрыть