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

GOTI

Registered
Здравейте,

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

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

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

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

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

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

Нали знаеш, че това не е точна оценка :)

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

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

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

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

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

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

Нали знаеш, че това не е точна оценка :)
Няма минуси за базите от данни в сравнение с файлове.

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

Не разбирам много и за това питам не давам нищо и не очаквам нещо точно.
Общо взето и по пътя на логиката и аз мисля че MySQL е по добре. Но просто исках да прочета компетентни мнения за което благодаря.

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

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

Благодаря предварително :)
 
GOTI каза:
StormBreaker каза:
GOTI каза:
файловете ми се струват като чели по бързи.

Нали знаеш, че това не е точна оценка :)
Няма минуси за базите от данни в сравнение с файлове.

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

Не разбирам много и за това питам не давам нищо и не очаквам нещо точно.
Общо взето и по пътя на логиката и аз мисля че MySQL е по добре. Но просто исках да прочета компетентни мнения за което благодаря.

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

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

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

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

И не започвай с 'оптимизиране' на нещо, без дори да знаеш как се ползва :)
 
Хем казваш, че смяташ, че файловете са по-бързи, хем казваш, че е по-логично MySQL да е по-бърз?

Отделен е факта, ти питаш "бази данни срещу файлове", а говориш само и единствено за MySQL? Това не е единствената RDBMS която съществува
 
Всички бази данни работят със файлове (освен тези, които губят информацията когато бъдат изключени). Въпросът е, че тези бази данни имат алгоритми за индексиране, търсене, кеширане и т.н. на много ниско ниво, чиято скорост е на практика невъзможно да бъде постигната с PHP.
 
Nikol4u каза:
Хем казваш, че смяташ, че файловете са по-бързи, хем казваш, че е по-логично MySQL да е по-бърз?

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

Да, звучи като хаотични изтрели но просто се ориентирам кое е най доброто и качествено.


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

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

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

Горе