Page 1 of 1

База данни или файл?

Posted: Sun Sep 15, 2013 12:11 pm
by GOTI
Здравейте,

Доста сух съм с база данни, принципно като код гледам от различна гледна точка от която гледа един програмист (аз лично не се имам за такъв нищо че разбирам).

Въпроса ми е кое е по добро - база данни MySQL или файл какъвто и да е вид.
Очевадно е че целия интернет гъмжи от MySQL но пък файловете ми се струват като чели по бързи.

Кажете вашите мнения + и - ... кое е по добре и защо и т.н. :)
Мисля че ще се получи една страхотна дискусия за не знаещите като мен :)

Re: База данни или файл?

Posted: Sun Sep 15, 2013 2:30 pm
by fbian
GOTI wrote:Здравейте,

Доста сух съм с база данни, принципно като код гледам от различна гледна точка от която гледа един програмист (аз лично не се имам за такъв нищо че разбирам).

Въпроса ми е кое е по добро - база данни MySQL или файл какъвто и да е вид.
Очевадно е че целия интернет гъмжи от MySQL но пък файловете ми се струват като чели по бързи.

Кажете вашите мнения + и - ... кое е по добре и защо и т.н. :)
Мисля че ще се получи една страхотна дискусия за не знаещите като мен :)
Много относителна работа.
Зависи какво ще записваш.

Re: База данни или файл?

Posted: Sun Sep 15, 2013 3:37 pm
by StormBreaker
GOTI wrote:файловете ми се струват като чели по бързи.
Нали знаеш, че това не е точна оценка :)

Файловете вместо БД са абсолютно лоша идея. Разликата е космическа.
Ето пример: Представи си, че имаш 200MB таблица пълна с информация за потребители и 200MB файл със същата информация.
Сега искаш да намериш потребител с конкретен email.

С MySQL или друга БД: 4-5 реда код, SELECT * FROM users WHERE email='test@test.test', заетата памет е няколко байта, само за конкретния потребител

С файл: Прочиташ файла и сравняваш всеки ред с мейла. Заетата памет е около 200MB, за всички редове във файла (или за всеки през който си минал ако го направиш по-умно).
Представи си, че по същото време се логват 20 потребителя - ето ти 4GB памет изядена само за един логин.

Каквото и да записваш файловете са лоша идея. Освен ако не записваш филми, музика, картинки и други не-текстови данни.

Няма минуси за базите от данни в сравнение с файлове.

Ако задаваш този въпрос, защото не ти се учи как се работи с MySQL и искаш да ти кажат, че файловете са хубаво нещо - съжалявам :(

Re: База данни или файл?

Posted: Sun Sep 15, 2013 4:55 pm
by GOTI
StormBreaker wrote:
GOTI wrote:файловете ми се струват като чели по бързи.
Нали знаеш, че това не е точна оценка :)
Няма минуси за базите от данни в сравнение с файлове.

Ако задаваш този въпрос, защото не ти се учи как се работи с MySQL и искаш да ти кажат, че файловете са хубаво нещо - съжалявам :(
Не разбирам много и за това питам не давам нищо и не очаквам нещо точно.
Общо взето и по пътя на логиката и аз мисля че MySQL е по добре. Но просто исках да прочета компетентни мнения за което благодаря.

За ученето ... рано или късно ще се научат, няма на къде. Но нещата който ги дават в нета ... как да кажа - не са за изграждането на примерно медийна група, че дори и за клюкарски сайт.

Някъде мога ли да прочета ... да кажем най новите тенденции и за оптимизирането на база данни.
Знам че преките пътища са най-добрите от това да обикаля една голяма част от базата. А точно тези неща аз поне в нета не ги намерих като примери.

Благодаря предварително :)

Re: База данни или файл?

Posted: Sun Sep 15, 2013 6:09 pm
by StormBreaker
GOTI wrote:
StormBreaker wrote:
GOTI wrote:файловете ми се струват като чели по бързи.
Нали знаеш, че това не е точна оценка :)
Няма минуси за базите от данни в сравнение с файлове.

Ако задаваш този въпрос, защото не ти се учи как се работи с MySQL и искаш да ти кажат, че файловете са хубаво нещо - съжалявам :(
Не разбирам много и за това питам не давам нищо и не очаквам нещо точно.
Общо взето и по пътя на логиката и аз мисля че MySQL е по добре. Но просто исках да прочета компетентни мнения за което благодаря.

За ученето ... рано или късно ще се научат, няма на къде. Но нещата който ги дават в нета ... как да кажа - не са за изграждането на примерно медийна група, че дори и за клюкарски сайт.

Някъде мога ли да прочета ... да кажем най новите тенденции и за оптимизирането на база данни.
Знам че преките пътища са най-добрите от това да обикаля една голяма част от базата. А точно тези неща аз поне в нета не ги намерих като примери.

Благодаря предварително :)
Започни с прости неща. Статии не мога да ти препоръчам, но има на английски колкото искаш, на един гугъл разстояние. :)

И не започвай с 'оптимизиране' на нещо, без дори да знаеш как се ползва :)

Posted: Wed Sep 18, 2013 12:28 pm
by Nikol4u
Хем казваш, че смяташ, че файловете са по-бързи, хем казваш, че е по-логично MySQL да е по-бърз?

Отделен е факта, ти питаш "бази данни срещу файлове", а говориш само и единствено за MySQL? Това не е единствената RDBMS която съществува

Posted: Wed Sep 18, 2013 12:50 pm
by gamena007
Всички бази данни работят със файлове (освен тези, които губят информацията когато бъдат изключени). Въпросът е, че тези бази данни имат алгоритми за индексиране, търсене, кеширане и т.н. на много ниско ниво, чиято скорост е на практика невъзможно да бъде постигната с PHP.

Posted: Wed Sep 18, 2013 11:50 pm
by GOTI
Nikol4u wrote:Хем казваш, че смяташ, че файловете са по-бързи, хем казваш, че е по-логично MySQL да е по-бърз?

Отделен е факта, ти питаш "бази данни срещу файлове", а говориш само и единствено за MySQL? Това не е единствената RDBMS която съществува
Да, звучи като хаотични изтрели но просто се ориентирам кое е най доброто и качествено.

gamena007 wrote: Всички бази данни работят със файлове (освен тези, които губят информацията когато бъдат изключени). Въпросът е, че тези бази данни имат алгоритми за индексиране, търсене, кеширане и т.н. на много ниско ниво, чиято скорост е на практика невъзможно да бъде постигната с PHP.
Това е интересно.
Ами какво се препоръчва да се използва?

Posted: Thu Sep 19, 2013 6:29 am
by gamena007
Задължително бази данни.

Защо БД?
1. Скорост
2. Стандарти
3. Четимост на кода
4. Функционалност
5. Сигурност

Защо файл?
1. Ако се прави кеш е по-добре във файл да се записва сериализирана информация, която е формулирана от тежка заявка към БД или тежки изчисления. Трябва задължително да се прави бенчмарк, защото в крайна сметка с файла може и да стане и по-бавно. Ако има възможност тази информация да се пази в РАМ паметта на сървъра е най-добре. Трябва да се внимава как и кога се чете файла за да не лийква памет.
2. За лог - във файла само се пише.