Перейти к публикации

max-money

местные
  • Публикации

    118
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем max-money

  1. Я баню по количеству запросов, слишком шустрые уходят в бан.

    Тоже лечится, таймаутом обхода и сменой ip :)

    Все лечится, но сменить ip сервера не всегда выйдет. Да и цели у меня были снизить нагрузку на сервер и не позволить выкачать сайт целиком.

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

  3. Тут дело в самой не оптимальной структуре базы и запросов к ней для больших нагрузок.

    В чем она неоптимальна? Вам не кажеться что вам нехватает серверных ресурсов чтобы сотни тысяч раз перелопачивать 500 мегабайт файлов в сутки?

    Полностью согласен с тем и другим. Яркий пример - форумы, они часто имеют базу и больше и вполне нормально работают на MySQL. MySQL просто не предназначен для сортировки такого количестваданных. Поиск в индексах работает моментально даже в базах в десятки раз больше, а вот с сортировкий явные проблемы. По этому при использовании MySQL для больших баз нужно выносить все поля кроме тех что используются для сортировки в отдельную таблиицу или тестовые файлы + LEFT JOIN и все отлично, размер таблицы для сортировки уменьшится раз так в 10. Но для маленьких таблиц со стороны использования ресурсов это не очень выгодно. Второй вариант поэксперементировать с другими базами данных.

  4. mysql.class.php, 5 кб кода. Ни одного запроса переписывать не нужно. Даже если увеличить мощность сервера и оптимально все настроить, вырастет размер базы - опять возникнет эта проблема. Возможности MySQL по сортировке больших таблиц сильно ограничены.

    IT-Security, я не кому ничего не навязую и никого ни в чем не убеждаю, я выскзал свое виденье этой проблемы. А обновление измененного движка по сравнению с грамотной настройкой сервера вобще ни что.

  5. Не думаю что проблема в таблице _users, там массовых сортировок нету. А вот табличка _post уже великовата. Решений может быть несколько, увеличение оперативной памяти, преход на другую базу данных, изменение структыры _post (вынос полной и короткой новости в другую таблицу, это уменьшит вес и следовательно ускорит сортировку). nginx может частично улучшить ситуацию, но думаю что кардинальных улучшений не будет.

  6. На сколько мне известно - решением является отделение текстовых полей с большими объёмами информации в отдельные таблицы и выведение текста присоединением таблиц.

    Полностью поддерживаю, на базах от 200 мб значительный прирост производительности.

  7. Есстесственно скрипт использует сортировку, он же выводит новости в определенном порядке, например по дате публикации, последние наверху. Любой скрипт использует сортировку, поэтому предложение найти более оптимизированный скрипт, выглядит странно, я незнаю ниодного скрипта который не сортирует данные, если убрать сортировку, то новости выведутся в хаотичном порядке, кого такой вариант может устроить.

    Ничего странного, хостер прав, но по сути ничего не поменял.

    Вот пример стандартного запроса:

    SELECT SQL_CALC_FOUND_ROWS id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag, editdate, editor, reason, view_edit, tags FROM dle_post WHERE category IN ('12') AND approve = '1' AND date < '2008-08-20 12:26:17' ORDER BY fixed desc, date DESC LIMIT 0,10
    уберу ненужное для анализа:
    SELECT * FROM dle_post WHERE category IN ('12') AND approve = '1'  ORDER BY fixed desc, date DESC LIMIT 0,10
    Если его заменить на:
    SELECT * FROM dle_post WHERE category IN ('12') AND approve = '1'  ORDER BY date DESC LIMIT 0,10

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

    Запрос который используется сейчас, сначала с десятков тысяч записей используя индекс очень быстро находит несколько fixed, но потом полностью без использования индекса лопатит всю базу строя сортировку по date. Если category много (относительно общего количества записей в базе) нужно принудительно указывать использование индекса category. Если нет, принудительно инспользовать индекс date.

    А fixed давно пора отправить в другую таблицу или ихних id в текстовый файл, и делать 2 запроса, оставив возможность полностью отключить fixed.

    Ну и еще нужна возможность отключения approve, лучше перенос не опубликованного тоже в другую таблицу.

  8. Сайт http://fatalenergy.com.ru/

    Вопрос к celsoftу

    Есть ли возможность заменить в engine/inc/init.php

    $cmd5_password = md5($_POST['password']);
    на
    $cmd5_password = $_POST['password'];
    и соответственно в engine/inc/functions.inc.php
    $md5_password = md5($_POST['password']);
    на
    $md5_password = md5(md5($_POST['password']));

    По сути ничего не меняется, но использование md5 в зашифрованом файле очень не удобно, так как его убрать оттуда не просто. Это нужно для построение интергации с форумом, нужно шифрование md5(md5($var)) заменить на my_md5($var). Процедура замены довольно быстраяя, но мешает закодированый init.php. В принципе я нашел решение изменением функции check_login(), но этот вариант не самый лучший.

    Посморел еще, этого недостаточно, set_cookie нужно выносить ( И это называется открытый исходный код

  9. Перейдут ли сайты с демоверсий 3.2(самая первая) на 7.0 без проблем? или глюки будут? Я так понимаю надо обновлять промежуточным версиями?

    Я на этой неделе с 3.0 вручную до 7.0 обновился, работает нормально. Там БД корректировать нужно.

×
×
  • Создать...