dkameleon

dkameleon
Рейтинг
386
Регистрация
09.12.2005
Интересы
деньги, секс и рок-н-рол

Можно тащить удалённый имадж через сокеты, кидать в темп, и оттуда имаджсайз брать.

в сокетах таймаут ставится :)

Попробуй перезалей на сервак в бинарном (!) режиме.

Зингельшухер:
Если вы не понимаете смысла сообщения читайте его два раза, я не сказал что сделал свои выводы только исходя из JOIN

Не переживайте так :) Вступая в дискуссию, читаю я архивнимательно ;)

Ваши слова:

(/ru/forum/comment/1103652)

Сначала о тяжести запроста, а далее - "глубже копать лень" :)

Или может ткнёте меня носом, где Вы делали выводы исходя из чего либо ещё, отличного от запроса. Был бы премного благодарен :)

ПС.

Зингельшухер:
И за одно гляньте внимательно на запрос вашей "булки" и увидете что во всей красе он никогда не существует.

Да зачем во всей? Половины достаточно :)

Основная часть после FROM = 3 левых джойна.

Аватарки видим? :) Видим = +2

Репу видим? :) Видим = +1

Итого как минимум шесть.

ППС. И я Вас прошу, если где-то и в каких-то случаях Джойн оказывается не лучшим выбором, то не надо сразу же бегать и кричать на все стороны, что "Джойны - это зло".

Если бы они были таким злом, безумно грузящим сервер, то врядли бы существовали столько разных (лефт, райт, иннер) конструкций, и использовались производителями серверов БД :)

Gray:
А вообще, я не очень понимаю, о чем вы спорите.

А-на-ло-гич-но :)

Просто пытаемся разобраться с замечанием по поводу "плохости" джойнов :)

Порыскал и нашёл 3.0.7 булку.

Зингельшухер

Во! "Менее оптимизированный" запрос наверное автору каталога может ещё только сниться ;)

$posts = $DB_site->query("
SELECT
post.*, post.username AS postusername, post.ipaddress AS ip,
user.*, userfield.*, usertextfield.*,
" . iif($forum['allowicons'], 'icon.title as icontitle, icon.iconpath,') . "
" . iif($vboptions['avatarenabled'], 'avatar.avatarpath, NOT ISNULL(customavatar.avatardata) AS hascustomavatar, customavatar.dateline AS avatardateline,') . "
" . iif($vboptions['reputationenable'], 'level,') . "
" . iif(!$deljoin, 'NOT ISNULL(deletionlog.primaryid) AS isdeleted, deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,') . "
editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
editlog.reason AS edit_reason,
post_parsed.pagetext_html, post_parsed.hasimages,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
" . iif(!($permissions['genericpermissions'] & CANSEEHIDDENCUSTOMFIELDS), $datastore['hidprofilecache']) . "
FROM " . TABLE_PREFIX . "post AS post
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = post.userid)
LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
" . iif($forum['allowicons'], "LEFT JOIN " . TABLE_PREFIX . "icon AS icon ON(icon.iconid = post.iconid)") . "
" . iif($vboptions['avatarenabled'], "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)") .
iif($vboptions['reputationenable'], " LEFT JOIN " . TABLE_PREFIX . "reputationlevel AS reputationlevel ON(user.reputationlevelid = reputationlevel.reputationlevelid)") . "
" . iif(!$deljoin, "LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON(deletionlog.primaryid = post.postid AND deletionlog.type = 'post')") . "
LEFT JOIN " . TABLE_PREFIX . "editlog AS editlog ON(editlog.postid = post.postid)
LEFT JOIN " . TABLE_PREFIX . "post_parsed AS post_parsed ON(post_parsed.postid = post.postid)
WHERE $postids
ORDER BY dateline $postorder
");

И что? Теперь всех сотрудников Jelsoft Enterprises теперь уволить за неуместное использование джойна?

Полагаю, Ваше замечание по поводу построения запроса боле чем неуместно.

ПС. Но тем не менее, спешу проинформировать читателей топика, я не согласен с автором каталога по поводу техподдержки. Он или дожен скрипя зубами обеспечить поддержку сам, или дать возможность покупателю найти поддержку на стороне. Во втором случае никакого зазендивания движка быть не должно.

skat, Нотариусы обычно без очередей ;)

ехать НИКУДА не надо будет.

Пишешь заявление, делаешь пару копий документов, заверяешь подпись, шлёшь по почте. Через неделю перс у тебя.

по памяти - да :)

Зингельшухер:
У каждого post есть ник (точнее user_id) таким образом запрашиваем 2 таблицы но обходимся без JOIN делается стандартное условие WHERE

Сможете предложить более быстродействующее решение для этого запроса:

/ru/forum/comment/1100383

без джойнов? :)

хе :)

Что-то подобное писал даже:

<html>
<head>
<script>
function Now() {
var today = new Date();
today.setTime( today.getTime() );
return today;
}

function setCookie(name, value, expires) {
var today = new Date();
today = Now();
path = '/';
domain = '';
secure = '';
var expires_date = new Date( today.getTime() + (expires * 1000) );
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires_date.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
document.cookie = curCookie;
}

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1)
end = dc.length;
return unescape(dc.substring(begin + prefix.length, end));
}

function wOpen(url) {
window.open(url,'_blank', 'scrollbars=0,menubar=0,left=0,top=0,height=' + screen.height + ',width=' + screen.width + ',resizable=0,toolbar=0,location=0,status=0');
return true;
}

function wOpenT(url, delay) {
if (getCookie('opened') != 1) {
setCookie('opened', 1, delay);
wOpen(url);
}
return true;
}
</script>
</head>

<body onLoad="wOpenT('http://microsoft.com', 600);">
</body>
</html>
Зингельшухер:
2 простых не грузят так сервак как 1 сложный, учите мат-часть.

Особенно когда нужно выбрать список сообщений с таблицы posts и к ней прицепить список ников, написавших эти posts - уже имеем джойн.

Это то, что бросается сразу в глаза.

Так же третий уровень вложенности категорий.

И внизу дерево разделов в выпадающем списке (но оно по идее кешируется).

Если бы вывести все запросы бюлетня, то, можете быть спокойны, "сложных" джойнов там будет предостаточно :)

ПС. И за меня не волнуйтесь. С матчастью уже изрядно ознакомлен ;)

Зингельшухер, извените, но первая часть вашего ответа вызывает единственную реакцию:

гыыыыыыыыыыыыы =)))))))))))))))))))))))))

Я почему-то думал, что основная проблема в ситуации была не в том, что запрос тащится из 4 чаблиц, а в том, что он весь как на ладони, да ещё и с мускульным сообщением об ошибке.

Прям стимул поколдовать в урле и исправить ошибку :D

Кое-где точку с запятой поставить, дроп, или делит какой-нить ;)

ПС. Прокрутите страничку форума вниз:

Page generated in 0.67492 seconds with 14 queries

ЧЕТЫРНАДЦАТЬ (!!!)

Всего: 8009