Вообщем много прочитал в инете холиваров на тему Мускул vs файлы, обе стороны приводят интересные доводы. Для меня не важно удобство работы ни с тем ни стем, меня больше интересует скорость и организация структуры хранения. Вопрос: Мы имеем две базы к примеру в 100к или 100кк (большие объемы) записей, к примеру профили пользователей из 10 переменных 2 варианта 1. База из файлов, где каждый файл(профиль) храниться в отдельной папке, по которой мы и обращаемся к нему т.е. file_get_contents($login.'/file.txt'); 2.Вариант на основе MySql 1 таблица с профилями в 10 рядов и запрос: $query = "SELECT * FROM $users WHERE login = $login"; что выполнится быстрее? что будет в таком случае быстрее поиск по мускулу или по файлам?
imreadyourmind Поэтому вы решили похоливарить тут? Некоторые мысли вслух: Eсли вы собираетесь целиком хранить файл профилей, то файлы, а в субд хранить ссылки на них Для 100кк записей - оба ваших варианта сдохнут. Да и не эквивалентны они. Теоретически, время загрузки файла и выборка из базы одной записи равного объема для файлов пройдет быстрее. Поиск будет быстрее в базе данных
хм... допустим у нас 100кк папок с файлами, почему такое обращение file_get_contents($login.'/file.txt'); сдохнет? по моему выполнится даже лучше чем на мускуле. тут же просто обращение к файлу и не имеет никакой зависимости от кол-ва файлов на сервере. а если поиск по 100кк то возможно и мускул и тем более файлы помрут. Мне нужно узнать какое из зол меньшее при больших объемах или есть ли достойные альтернативы на большие объемы.
В больших объемах имеет место, например, распределённая обработка данных. И запросы вида Code: $query = "SELECT * FROM $users WHERE login = $login"; , по опыту разработки, уже не актуальны. Тк используешь либо обертки, либо ORM-библиотеки, но чистый sql в крайних случаях.
Если запрос будет: /user/file.txt где юзер указан скриптом и не берется из БД, то естественно что файл будет быстрее, но при этом есть 2 нюанса: Это лучше делать на SSD дисках. Файлы все таки будут занимать большую ячейку памяти ежели СУБД
Тут много можно рассуждать на эту тему, дело в том что все зависит еще от грамотности кода, но MySQL работает быстрее намного чем файловая база данных, так как MySQL на сервере уже открыта и идет обращение к нужной таблице и нужному полю, а в случае с файловой базой данных при каждом обращении файл будет постоянно открываться заново пока не будет найдено соответствие, представьте себе идет 1000 запросов к базе данных MySQL размером в 5 mb, сервер с оперативкой 128 более менее еще выдержит, но если сделать такой эксперимент с файловой БД то результат будет плачевным.
зачем мне рассуждения насчет кода?) я же предложил варианты сравнения, да и тему можно закрыть уже. то что хотел услышать я услышал.