За последние 24 часа нас посетили 50384 программиста и 1690 роботов. Сейчас ищут 1117 программистов ...

MySQL через сокет

Тема в разделе "Прочие вопросы по PHP", создана пользователем [vs], 24 апр 2009.

  1. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Как залогиниться к MySQL через сокет, не используя библиотечные функции?
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Совсем невозможно чтоли? А то ведь сокеты можно распараллеливать...
     
  3. akrinel

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

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Вполне возможно. Только очень долго и геморойно. И думаю работать будет медленнее чем со стандартными mysql функциями, которые на C написаны.

    Вот тебе MySQL Internals ClientServer Protocol.
    Когда мне год назад пришла в голову такая идея, я где-то его нашел но не осилил ибо решил что слишком сложно для развлечения на выходные. Выложи потом, пожалуйста, в готовых решениях то, что у тебя получится. Любопытно посмотреть.

    UPD Еще немного на русском
     
  4. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Нафига?

    Создай еще одно соединение.
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Работа скрипта приостанавливается на функции mysql_query(), пока она не вернет результат запроса. А через сокет можно послать запрос, и не дожидаясь ответа выполнить еще что-то, после чего прочитать ответ.
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    [vs], изобретаешь треды? :)
     
  7. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Тогда делай демон, который будет делать запросы к БД. А к этому демону уже коннектиться через сокеты никто не мешает.
    Я, правда, с трудом могу придумать ситуации, в которых нужна такая функциональность. И все, что приходит в голову, я бы не стал писать на PHP.
     
  8. И не надо писать. Mysql proxy уже написан...
     
  9. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Я прои изначальную мысль распараллеливания запросов и выполнения кода. Ведь если речь идет о веб-приложении, то сам веб-сервер выполняет распараллеливание по запросам. Ну а если это не веб-приложение, то нафига PHP… вот я о чем.
     
  10. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Кстати в мануале http://lv.php.net/manual/en/mysqli.query.php написано что в 5.3.0 добавленно asycn queries ;) То что нужно автору, но к его сожалению оно только будет. Да и вообще - нафига...?!
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вот например надо тебе вытащить 5 файлов по 50мб из полей типа BLOOB... Шутка :D просто так можно заметно ускорить скрипты с большим количеством запросов, а демон, написаный на том же php работает не очень при большом количестве соеденений.
     
  12. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    [vs]
    В первую очередь не надо вытаскивать файлы из базы :)
    Во вторых такие объёмы лучше обрабатывать внешними утилитами - PHP крайне медленно с файлами работает по сравнению с другими операциями.