За последние 24 часа нас посетили 20114 программистов и 1693 робота. Сейчас ищут 1844 программиста ...

MSSQL, PHP, производительность - переходить ли с MySQL?

Тема в разделе "PHP и базы данных", создана пользователем Sanito, 24 дек 2007.

  1. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    Всем привет.

    Созрел насущный вопрос, нуждаюсь в помощи.

    Имеется довольно большой и серьезный проект, написанный на php+mysql. В настоящее время нареканий на производительность нет, поэтому полторы-две с половиной тысячи запросов в секунду (из которых примерно 90% DML) с почти десятка серверов плюс непосредственно веб проблем не создают (InnoDB).

    Однако есть проблема с самим MySQL ;-)
    Его возможностей уже не хватает. В частности, нет нормальной процедурной части, нет иерархических запросов, есть ряд ограничений (речь ТОЛЬКО про STABLE версии). Поэтому было принято волевое решение переходить на что-то более серьезное. Пока выбор идет между Oracle и MSSQL (потому что на каждом по 2-3 года опыт работы). Первый, конечно, предпочтительнее, однако второй дешевле как по серверным лицензиям ($400-500 за базу плюс $300 за сервер против более $6000 за оракл под линукс), так и по железу: многопроцессорный амд с 8-16 гб оперативы и win2003 стоит сравнительно мелочь, а хватит его с головой и выше на года', в то время как оракл ставить на линукс не хочется, а для винды конфигурацию надо посерьезнее (т.к. лицензирование по кол-ву используемых процессоров). В общем основной фактор в выборе цена, поэтому mssql.

    Собственно, сам вопрос: имел ли кто-то опыт работы с использованием mssql в качестве БД для сайта на php c таким количеством запросов (не менее полутора и до трёх тысяч в секунду с перспективой 5-6-7)? Высока ли производительность и устойчивость пула (навскидку основной проблемой может быть только время соединения)?

    Напомню, система распределенная... Веб на одном сервере и еще несколько (уже десяток вот-вот перешагнем) машин в разных датацентрах.

    P.S. Можно в личку или по icq... :)
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    офф:
    Какие именно задачи не дает делать мускул?
     
  3. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    Я же написал. Хочу, например, процедуры с возможностью передавать временные таблицы, хочу запросы иерархические, триггеры нормальные хочу, хочу индексы больше чем по 255 символов. Ну и по мелочам... Хочу чтобы delete from t where id in (select id from t join ... where ...) работало и т.д....

    P.S. Действительно офф.
     
  4. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    можно отдельную тему для холивара отделить. ))
    не понял.
    вопрос в удобстве или скорости? данный конкретный пример не критичен имхо.
     
  5. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    1. Ну есть такие запросы... "Иерархические"... Они нужны. В мускл их нет.

    2. Дело не в удобстве, а в том что такой запрос не работает в mysql. Приходится выполнять два запроса.

    -----------------

    Критичен пример или нет - неважно, я не об этом спрашивал и спрашиваю. Главный тезис - mysql больше НЕ устраивает. Задачи усложнились, немного изменились. И поделать с этим ничего нельзя.
     
  6. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    пример? и триггера?
     
  7. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    google.com.ua
     
  8. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    Понятно. обидно снова разочаровываться в людях.
     
  9. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    Спасибо Вам, armadillo, за оффтоп, прощайте.

    Буду очень рад ответам по теме топика.
     
  10. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Sanito
    Если переходить, то только на Оракл - эта система, на мой взгляд, является более перспективной и стабильной.
    Вы только учтите одну вещь... ни один разработчик СУБД не вставляет в свою систему пустые циклы... и памяти больше, чем необходимо, не выделяет... я это к тому, что это палка о двух концах, и за все преимущества нужно платить - если вы перейдете на более "транзакционный" язык, вы обязательно потеряете в производительности на более простых, атомарных операциях - здесь у Мускула равных нет.
     
  11. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    постгрес не рассматриваете?

    armadillo, это нативная работа с деревьями
     
  12. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    dark-demon
    Для работы с деревьями есть Nested Sets :)

    Кстати, Постгрес - это вариант. Я как-то почитал список возможностей, понравилось. Правда поставить его у себя мне так и не удалось... :oops:
     
  13. Anonymous

    Anonymous Guest

    Угу. Пытались поднять один проек на базе MsSql - руководствовались тоже, ценой. Полгода помучались с переодическими падениями, забоями спула, и прочими проблеми, после чего проект мигрировал на Оракл. У Ораклового сервера на данный момент аптайм 276 дней...
     
  14. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    dark-demon про иерархические запросы понятно, но это не отменяет необходимость самому следить за глубиной рекурсии и объемом вычислений. Сделать-то можно, а вот надо ли? Стоит семь раз подумать.
    И я спрашивал про задачи, а не абстрактные "возможности".
    Про триггеры не понял совсем.
     
  15. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    А можно подробнее насчет периодических падений, переполнения пула (действительно переполнялся?) и прочих проблем?

    И если можно, примерную конфигурацию железа сервера, пару слов про сам проект (без имён) и по усмотрению пару слов... Если это не конфиденциальная информация конечно же...

    Интересует именно насколько разношерстное всё и вообще. Потому что у меня в силу специфики freebsd разных версий и линукс. Ну и плюс, если mssql, еще и windows сервер появится.

    Нет, он "не нравится". Работает у знакомых на 2хОптерон с 4 Гб ram, база простая, индексы в порядке, запросы смотрели - вроде всё должно быть хорошо, а все плохо (в плане производительности). Плюс у себя ставил для локальных нужд, не внушило... Ну и явно он проигрывает в процедурных возможностях даже двухтысячному сиквелу, не говоря уже про 2005 (оракл даже не вспоминаем).

    Совершенно согласен (имею пару сертификатов), если бы не одно большое но. Стоит он очень много, а условно-бесплатная версия имеет ограничения... Один процессор, не более 1 Гб оперативки, не более 1 Гб база... Говорят, что в Oracle 11g Express увеличат в два раза всё, но все равно мало. Пусть у нас до 1 Гб базе еще далеко (говорим только про данные), но надо смотреть дальше, на перспективу. Плюс довольно расплывчато в описании всё насчет того, что же это за объем. Если общий всех файлов - тогда 1 Гб точно мало.
     
  16. Anonymous

    Anonymous Guest

    По порядку расскажу. Работаю я в национальном операторе связи - задача была такова: все существующие телекоммуникации разместить в графическом интерфейсе на спутниковых картах, с указанием спецификации, et cetera, в том числе и веб-клиентом. И чего нас потянуло на MsSQL... )) Windows 2000 Advanced Server + MsSQL 2000 sp2 на intel xeon x4 + 4 гб рамы. Первой проблемой стал регулярно забивающийся лог, отключить который было нельзя, ибо разработка, но и работать с ним было не очень удобно, ибо он один файл. Ладно, это решили автоматическими бэкапами лога с архивацией. Следующей проблемой стал падающий MSSQL AGENT - который вдруг переставал отвечать на запросы, и должен был перегружатся ручками. Делал он так раза два в неделю. Пул забивался всего два раза, правда, причем вешая всю систему напрочь. Поскольку на карте предпологались сложные отрисовки связанных деревьев, на первую отрисовку тратилось секунд 20(около 10000 обьектов со связями с друг ругом), и это при частичном внесении данных. Надоело это через полгода, все это переехало на RedHat Advanced Server 9 + Oracle 9.2, и с тех пор (два года) перегружалось два раза - когда сервер переносили в другую серверную, и когда изза проблем в сети упал Оракловский листенер. С тех пор оно все там благополучно крутится. )
     
  17. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    Т.е. все-таки веб-клиент был как довесок, одна из возможностей, а основной упор делался на десктоп-приложение с постоянным соединением с БД? Это важно, потому что для сайта важна высокая скорость соединения, чего не скажешь о десктоп-приложении.
     
  18. Anonymous

    Anonymous Guest

    Нет, нам тоже была важна высокая скорость, ибо у нас по тем временам часть районов была на модемной связи с областным центром, в основном, вебклиент под них и делался. Сейчас правда, вебклиент почти не развивается, мы терминальными серверами для всех районов стали пользоватся. Но тогда он был, и был очень актуален.
     
  19. Sanito

    Sanito Активный пользователь

    С нами с:
    24 дек 2007
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    Киев
    Последний вопрос - а сколько примерно было одновременных сессий на вебе?

    Хотя бы порядок...
     
  20. Anonymous

    Anonymous Guest

    Sanito, в версии с mssql 200-300 всего...