Голям текстов тип данни в MySQL [затворен]

Опитвам се да разбера дали трябва да съхранявам текстови файлове (65535 байта или по-малко) в MySQL или изобщо да не използвам MySQL. Производителността е на първо място, а след това лекотата на използване, тъй като съм новак.

Какъв би бил добър избор на тип данни, ако искам да използвам база данни? Може ли VARCHAR да се използва за толкова големи данни, или TEXT, или BLOB? Не знам кое.


person user1505713    schedule 01.01.2014    source източник
comment
За какво бихте използвали текстовите файлове? Търсите в тях или просто ги връщате като статични резултати?   -  person Joachim Isaksson    schedule 01.01.2014
comment
не бихте ли помислили за съхраняване на файлове и само име на файл в базата данни?   -  person dagfr    schedule 01.01.2014
comment
Бих пуснал статистика (QUERY всички редове) веднъж или два пъти на ден.   -  person user1505713    schedule 01.01.2014
comment
възможен дубликат на Трябва ли да използвам MySQL blob тип поле?   -  person Bill Karwin    schedule 01.01.2014


Отговори (1)


BLOB е двоичен голям обект, който може да съдържа променливо количество данни. Четирите типа BLOB са TINYBLOB, BLOB, MEDIUMBLOB и LONGBLOB. Те се различават само по максималната дължина на стойностите, които могат да съдържат. Четирите типа ТЕКСТ са TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT. Те съответстват на четирите типа BLOB и имат еднакви максимални дължини и изисквания за съхранение

Но съхраняването на файлове в базата данни има някои предимства и недостатъци:

Предимства:

1. Backups and switches to another server are easier to achieve
2. No need to add another method to access the files beside the database

Недостатъци:

1. Accessing an image means retrieving it's bytes and maybe storing that as temporary local files and may be more complicated
2. File systems are simply faster due to lower overhead

Text и blob са почти идентични, основната разлика е, че трябва сами да се грижите за кодирането, когато използвате blob. От друга страна ще бъдете принудени да използвате кодирането на текстово поле...

Решението е ваше, повечето мнения, които съм чувал досега са снимките да се съхраняват като файлове; но това са мнения, опитайте се да базирате решението си на нуждите на вашите проекти.

person Nidhish Krishnan    schedule 01.01.2014
comment
Съжалявам, но каква е разликата? Двоичен срещу обикновен? С кой би бил по-бърз (не непременно по-лесен) за работа? - person user1505713; 01.01.2014
comment
BLOB срещу TEXT: можете да използвате набори от символи, когато използвате TEXT. - person Bill Karwin; 01.01.2014
comment
Text и blob са почти идентични, основната разлика е, че трябва сами да се грижите за кодирането, когато използвате blob. От друга страна ще бъдете принудени да използвате кодирането на текстово поле... - person Nidhish Krishnan; 01.01.2014
comment
@BillKarwin Това ще бъде моделът за уеб приложение. Така че бихте препоръчали използването на TEXT, ако искам данни от международни посетители? - person user1505713; 01.01.2014
comment
@user1505713, ако това са текстови данни, да, използвайте TEXT -- и дефинирайте набора знаци по подразбиране utf8. Виждал съм хора, които се опитват да използват BLOB за текстови данни и са изпадали в ужасни проблеми с преобразуването на набор от знаци. - person Bill Karwin; 01.01.2014
comment
Благодаря и на двамата! Сега мога да стартирам този проект. - person user1505713; 01.01.2014
comment
@NidhishKrishnan, друга важна функция за съхраняване на съдържание в петно ​​или текст: когато ИЗТРИЕТЕ реда, съдържанието на текста също се изтрива автоматично. Ако съхранявате данни извън базата данни, DELETE в SQL не изтрива автоматично файловете във вашата файлова система. Трябва да го направите сами като допълнителна стъпка, в противен случай рискувате да съберете много осиротели файлове. Също така можете да разчитате на поддръжка на транзакции, включително връщане назад и ACID, ако съхранявате данните си в базата данни. - person Bill Karwin; 01.01.2014
comment
да.......@BillKarwin прав си........... - person Nidhish Krishnan; 01.01.2014