Что выполниться быстрее?

Discussion in 'PHP' started by imreadyourmind, 25 Apr 2011.

  1. imreadyourmind

    imreadyourmind New Member

    Joined:
    23 Feb 2010
    Messages:
    38
    Likes Received:
    4
    Reputations:
    5
    Вообщем много прочитал в инете холиваров на тему Мускул vs файлы, обе стороны приводят интересные доводы. Для меня не важно удобство работы ни с тем ни стем, меня больше интересует скорость и организация структуры хранения.
    Вопрос:
    Мы имеем две базы к примеру в 100к или 100кк (большие объемы) записей, к примеру профили пользователей из 10 переменных
    2 варианта
    1. База из файлов, где каждый файл(профиль) храниться в отдельной папке, по которой мы и обращаемся к нему т.е.
    file_get_contents($login.'/file.txt');

    2.Вариант на основе MySql 1 таблица с профилями в 10 рядов и запрос:
    $query = "SELECT * FROM $users WHERE login = $login";

    что выполнится быстрее?
    что будет в таком случае быстрее поиск по мускулу или по файлам?
     
    #1 imreadyourmind, 25 Apr 2011
    Last edited: 25 Apr 2011
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    imreadyourmind
    Поэтому вы решили похоливарить тут? Некоторые мысли вслух:

    Eсли вы собираетесь целиком хранить файл профилей, то файлы, а в субд хранить ссылки на них

    Для 100кк записей - оба ваших варианта сдохнут. Да и не эквивалентны они.

    Теоретически, время загрузки файла и выборка из базы одной записи равного объема для файлов пройдет быстрее.

    Поиск будет быстрее в базе данных
     
    _________________________
  3. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Из файла быстрее, я проверял.

    И да, после 100кк таки сдохнут оба варианта.
     
  4. imreadyourmind

    imreadyourmind New Member

    Joined:
    23 Feb 2010
    Messages:
    38
    Likes Received:
    4
    Reputations:
    5
    хм... допустим у нас 100кк папок с файлами, почему такое обращение
    file_get_contents($login.'/file.txt');
    сдохнет? по моему выполнится даже лучше чем на мускуле. тут же просто обращение к файлу и не имеет никакой зависимости от кол-ва файлов на сервере.

    а если поиск по 100кк то возможно и мускул и тем более файлы помрут.
    Мне нужно узнать какое из зол меньшее при больших объемах или есть ли достойные альтернативы на большие объемы.
     
  5. Fuckel

    Fuckel Banned

    Joined:
    16 Jan 2008
    Messages:
    274
    Likes Received:
    59
    Reputations:
    6
    В больших объемах имеет место, например, распределённая обработка данных.
    И запросы вида
    Code:
    $query = "SELECT * FROM $users WHERE login = $login";
    , по опыту разработки, уже не актуальны. Тк используешь либо обертки, либо ORM-библиотеки, но чистый sql в крайних случаях.
     
    #5 Fuckel, 26 Apr 2011
    Last edited: 26 Apr 2011
  6. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    Если запрос будет:
    /user/file.txt
    где юзер указан скриптом и не берется из БД, то естественно что файл будет быстрее, но при этом есть 2 нюанса:
    Это лучше делать на SSD дисках.
    Файлы все таки будут занимать большую ячейку памяти ежели СУБД
     
  7. lex(SL)

    lex(SL) New Member

    Joined:
    21 Nov 2010
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    Тут много можно рассуждать на эту тему, дело в том что все зависит еще от грамотности кода, но MySQL работает быстрее намного чем файловая база данных, так как MySQL на сервере уже открыта и идет обращение к нужной таблице и нужному полю, а в случае с файловой базой данных при каждом обращении файл будет постоянно открываться заново пока не будет найдено соответствие, представьте себе идет 1000 запросов к базе данных MySQL размером в 5 mb, сервер с оперативкой 128 более менее еще выдержит, но если сделать такой эксперимент с файловой БД то результат будет плачевным.
     
  8. imreadyourmind

    imreadyourmind New Member

    Joined:
    23 Feb 2010
    Messages:
    38
    Likes Received:
    4
    Reputations:
    5
    зачем мне рассуждения насчет кода?) я же предложил варианты сравнения, да и тему можно закрыть уже. то что хотел услышать я услышал.