|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2011
Сообщений: 127
|
что использовать mysql или файловую систему?
Здравствуйте форумчане, подскажите кто разбирается или сталкивался с подобным.
Есть приложение на mail.ru в котором необходимо хранить небольшой кусок текстовых данных о каждом из пользователей, которые они сами же и вводят. Небольшой - это не больше 20000 символов. Для того чтоб данные занимали меньше места на сервере использовал следующий алгоритм. var str:String="Строка которую надо передать."; var b:ByteArray=new ByteArray(); b.writeUTFBytes(str); trace(b.length);// Выводит 20000 b.compress(); trace(b.length);//Выводит 161 Далее эти данные передаю на сервер и там сохраняю файл. При обращении пользователя отправляю ему файл обратно. Делаю И все отлично работает - быстрый доступ и нет сбоев. Но сбросил к себе с сервера на комп 1200 таких фалов в папку. Смотрю ее размер (в Windows правой кнопкой просто) пишет размер - 423кб на диске - 4,8Мб Вот и встал у меня вопрос - а сколько же реально такие данные занимают 423кБ или 4,8Мб на сервере? Я то все это делал из-за экономии места на диске (пользователей 500 000). И если 4,8Мб, то не лучше ли будет хранить их в mysql? П.С. если сжать папку с файлами в zip архив, то его размер всего 200кб. |
|
|||||
Регистрация: Jun 2011
Сообщений: 127
|
Не вы меня не так поняли. Размер то проверяю без проблем и во флеш и на сервере. Каждый файл - это данные отдельного пользователя и надо их получать при запуске приложения и сохранять обратно в конце работы. Пользователей полмиллиона и их количество растет.
Даже сейчас 500 000х20кб=10Гб данных. А если в сжатом виде 1Гб. Я удивился что Windows показывает размер фалов на диске больше чем сумма размеров всех файлов в папке в 10 раз. Если так же на сервере, то соответственно сжатие не приводит к уменьшению размера необходимого дискового пространства. Вопрос как лучше хранить эти данные в базе данных mysql или в отдельных файлах чтоб они занимали меньше места? Файла проще загружать на сервер и работать с ними чем с огроменной базой данных. И второй вопрос почему мой Windows показывает, что размер всех файлов 423кб, а на диске они занимают 4,8Мб? Я честно вообще не понимаю что это за разница и откуда она берется. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
У вас файл меньше одного кластера, поэтому и занимают столько.
|
|
|||||
Регистрация: Jun 2011
Сообщений: 127
|
Спасибо Etc прав на все 100%. Тут нашел инфу http://www.goodkomp.com/page/lokalny...-diske-klaster
Посмотрел у себя у меня кластер 4кб. И большинство файлов в папке меньше этого значения. Значит сжатие файла если он меньше 4кб никакого выигрыша не даст и все это дело вместе займет таки 2-3Гб. Никаких сбоев, кстати, не возникнет в будущем если в одной папке будут лежать 500 000 фалов? А то я что-то все больше в сторону базы данных mysql склоняюсь. Последний раз редактировалось Андрей911; 26.08.2011 в 12:25. |
|
|||||
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Так а что мешает базу-то завести?
|
|
|||||
Регистрация: Jun 2011
Сообщений: 127
|
Да в общем ничего не мешает - она даже есть, но я никогда не пробовал туда зипихивать бинарные данные, плюс еще начитался в инете что работать с огромными базами неудобно в плане скорости доступа и экспорта импорта. Поэтому решил попробовть с файлами.
Сегодня пытался запихнуть в базу бинарные данные и не получилось. Тип поля data - BLOB
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'x'xЪµњыЏ]WuЗя•I~«E’э~ UЕҐµ…ў†‚ЂєЉЦЮkпxЉг±Жv"ч!сЁЪJ (”@КCў*Z©”BЎPиїpз?кgЏCf’ШЧ' at line 1 Так тоже пробовал
разобрался надо было вставлять так же как обычную строку
чтение и запись данных в базу mysql --- 0.00494 сек чтение и запись при работе с файлами - 0.00018 сек Как говорится почувствуйте разницу. Быстродействие падает в 25 раз. Причем основное время в случае с mysql уходит именно на соединение с базой, а не на чтение или запись в нее. |
Часовой пояс GMT +4, время: 00:05. |
|
« Предыдущая тема | Следующая тема » |
Теги |
bytearray , mysql , сжатие данных |
|
|