Ответы пользователя по тегу Базы данных
  • Какие есть сервисы для обработки данных из таблиц Excel?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если вы хотите делать различные запросы, сравнения и анализ, то зачем было выгружать данные в Excel?

    Пусть данные останутся в базе данных, в которой есть инструменты для запросов, сравнения и анализа.
    А в Excel выгружайте результаты для просмотра и печати.

    Собственно базы данных и предназначены для работы с данными в таблицах.
    Ответ написан
    2 комментария
  • С помошью чего быстро искать по файлам 40 гб+?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Поиск в текстовом редакторе вешает потому что большинство редакторов пытаются загрузить файл в память целиком.
    Пользуйтесь утилитами поиска, типа grep или find (виндовый), которые читают текстовые файлы построчно, тогда проблем с памятью не будет. Но для поиска такие утилиты будут читать все 40 гб файла.

    Поэтому есть мысль, что данные нужно перенести в базу, а в базе уже можно будет создать индексы для тех полей, по которым вы чаще всего выполняете поиск. Как оптимизировать базу - отдельная тема. Просто нужно учесть, что банальный перенос данных из файла в базу не решает проблему сам по себе, нужно понять что у вас за данные и как именно они должны лежать в базе наиболее оптимальным для вашего поиска образом.
    Ответ написан
    Комментировать
  • Как называется технологическая платформа по другому?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Так и называется. Не нужно придумывать замену слову платформа - у всего есть своя платформа.

    Например у 1С бухгалтерии - платформа 1С
    У продукта 1С платформой может быть например windows (вроде под Линукс он еще не выходил)
    У ОС Windows платформой может быть например архитектура x86

    Каждая платформа предоставляет некоторый функционал для того, чтобы на нем можно было написать какой-то продукт, который в свою очередь может предоставлять функционал как для конечного пользователя, так и программистов, которые пишут что-то поверх него. И уровней вложенности в разных случаях может быть много.

    В некоторых случаях, можно еще указывать дополнительную базу, если продукт зависит от двух технологий, например 1С на базе файлов, или на базе SQL
    Ответ написан
    6 комментариев
  • Как хранить очень большое количество файлов? Как сохранять пути в БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "очень много картинок" - это сколько?
    десятки тысяч - легко живут в одной папке.

    Если обращаться к файлам по прямому пути, задержки в чтении не будет. Задержка в записи - минимальная.
    Если файлов больше 100к, то в принципе да, можно идти так, как вы указали - создавать подпапки, но желательно алгоритм генерации файлов подправить таким образом, чтобы самих папок было не слишком много, ибо если у вас будет 100к папок по 1-3 файла в каждой - это неэффективно и неэкономно.
    В линукс каждая папка - минимум 3 directory entry.
    Ответ написан
    Комментировать
  • Хорошая ли структура работы с БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Нет, это очень плохая структура работы с БД.
    1. Если оба компьютера с программами в локалке, зачем для хранения файла выделять третий компьютер? Храните его на одном из компьютеров с программой.

    2. Вообще на самом деле файл с БД не должен лежать где-то, и программы не должны обращаться к этому файлу.
    Если две программы непосредственно работают с одним файлом, они могут друг другу мешать.
    Правильно - должен быть где-то (на любом подходящем компьютере), запущен сервер базы, к которому подключаются ваши программы. И этот сервер базы уже управляет как именно хранятся данные так, чтобы две программы, работая с этими данными, не мешали друг другу.
    Ответ написан
    2 комментария
  • Как лучше организовать хранение игрового инвентаря в базе данных?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    А почему масштабируемость не выдерживает?
    В проектах типа Lineage2 (онлайн до 5000, зарегистрированных аккаунтов до 15000) - это не проблема.

    КАЖДЫЙ предмет - это строка в таблице items, с указанием владельца.

    Поля примерно такие:
    item_id, owner_id, item_type, param1, param2, param3
    item_id - уникальный номер предмета
    owner_id - ID владельца, можно добавить поле для координат и времени хранения для тех предметов, которые лежат на земле. Периодически их можно удалять, а те, у которых время хранения 0 не удалять.
    item_type - ID типа предмета, в отдельной таблице храните все предметы и их неизменяемые параметры (вес, материал, название, описание, ограничения по расам, по куда одевать, все такое)
    param1...param10 - изменяемые параметры предмета (заточки, цвет, эффекты, состояние поломки)
    Для предметов типа деньги, монеты, бутылки - можно сделать столбец с количеством, для остальных предметов это всегда 1.

    Положение предмета (типа одет, или в рюкзаке), можно делать или в этой же таблице, или в таблице владельца.

    Собственно не очень понятно, что вы имеете ввиду, когда считаете, что это не масштабируется.
    Ответ написан
    2 комментария
  • Можно ли хранить кэш базы в оперативе?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Любая нормальная база сама занимается грамотным кешированием в памяти, и двойное-тройное кеширование не нужно. Вы можете просто загружать объекты в память и обращаться к ним, а не к базе. Но если вы их меняете, то нужно регулярно сохранять. База это делает самостоятельно, поэтому нет смысла делать велосипед.
    Что-либо тюнить имеет смысл, если у вас настолько высоконагруженный проект, что стандартные средства не решают проблему.
    Ответ написан
    5 комментариев
  • Вопрос к опытным админам. Где набраться достаточно опыта в кратчайшие сроки?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "Кратчайшие сроки" и "научиться администрировать линукс, mysql, pgsql и телефонию" - взаимоисключающие параграфы. Кроме того, "достаточно опыта" не говорит ни о чем, так что ваш вопрос - это не вопрос а вопль в небо, и все вам скажут "читайте документацию, пользуйтесь гуглом" по каждой проблеме.

    А по-нормальному, на месте уже должен быть уже опытный человек, которому вы помогаете. Это будет самое быстрое, поскольку "научиться администрировать Линукс" и "научиться поддерживать Линукс в конкретной конторе с конкретной инфраструктурой" - разные вещи.
    Ответ написан
    1 комментарий
  • Какие аргументы в пользу использования транзакций в бд?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "1) Добавить транзакцию - всего несколько строк кода.
    2) Как раз таки хотелось бы услышать, какие кейсы проблем здесь возможны"

    Написать несколько строк кода - время разработчиков и деньги заказчика."
    Протестировать несколько строк кода - время тестировщиков и деньги заказчика.
    Добиться создания новой таски, которую оплатит заказчик - время менеджеров и деньги заказчика

    Использование транзакций это просто инструмент, а не истина. Вам нужно привести пример, когда в текущей работе вашего приложения может возникнуть реальная ситуация с ошибками, связанная с тем, что вы не используете транзакции, и что решить или предотвратить такую ситуацию при помощи внедрения транзакций - будет выгоднее и дешевле, чем при помощи кода, как это сделано сейчас.

    Искать ответ на тостере, где не знают ни про ваш проект, ни условий работы, ни того, насколько легко добавить подобную задачу в спринт - вряд ли вы получите правильный ответ, есть даже вероятность что вы получите несколько разных ответов, но за правильный примете только тот, который лично вам по душе, а не тот, который более адекватный.
    Ответ написан
    1 комментарий
  • Профессии в которых используют SQL?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Вам - в ентерпрайз.

    1. Бизнес аналитик.
    Если английский на разговорном уровне, то это именно ваше.
    Фронт работ - общаться с заказчиком на бизнес уровне, передавать разработчикам что именно хочет видеть заказчик. Есть множество энтерпрайз проектов, включая собственно разработку софта для тех же банков, где нужны бизнес аналитики, которые будут понимать что именно должно происходить с данными, и пояснять это разработчикам, помогая составлять техзадание.

    2. Разработчик баз данных.
    Слежение за состоянием баз данных, обновление, накатка. Для тестирования различных нововведений нужно и приложение обновлять и данные для него готовить. Чтобы данные соответствовали нужной версии приложения, чтобы данные соответствовали стандартным тестовым данным - работы полно. Особенно в крупном проекте, где для тестирования выделено несколько десятков тестовых энвайрнментов. В идеале пытаться это все автоматизировать, но в энтерпрайзе бывает что невозможно.
    Ответ написан
    Комментировать
  • Как стать программистом в банке?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Заходишь на сайты нескольких банков в раздел вакансии.
    Смотришь требования.
    Анализируешь. Час времени - и у тебя самая актуальная и живая информация.

    Программист в банке не занимается математическими моделями, этим занимаются архитекторы, и бизнес аналитики, и возможно 1-2 на весь банк. Остальные послушно пишут свои кусочки.

    Практически подавляющее количество адекватных банков, пишут софт не сами, а отдают на аутсорс. Собственные программисты обеспечивают поддержку/внедрение. Возможно какой-то аудит.
    Ответ написан
    Комментировать
  • Как хранить данные(расписание занятий)?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    json был придумен не для хранения данных, это формат для того, чтобы данные упаковать, передать одним куском, с другой стороны распаковать с сохранением структуры.

    Поэтому конечно хранить лучше в базе данных, откуда дергать уже нужные данные. Спроектировать базу данных можете любым удобным для вас способом. Одной таблицей, десятью таблицами...
    Ответ написан
    2 комментария
  • Что выбрать MySQL или PostgreSQL?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    IMHO ваша нагрузка вообще невелика. У меня на mysql живут проекты с несколькими миллионами добавлений в сутки, и я не считаю, что это едва середнячок.

    MySQL все еще считается более популярным и в случае чего, проще найти для него ответы. Для вашего проекта я бы порекомендовал его.
    Ответ написан
    Комментировать
  • Байты и типы данных, в чём фишка?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    на 262144 записях может не густая, но это у вас очень небольшая база и странная, поскольку в базе хранятся строки данных, а не один единственный столбец. 4 байта тут, 4 байта там, 2 байта еще где-то. и вот уже на одной строке экономится прилично..

    Влияет и на скорость выборки (сравнение то идет по всей длине), и на размер БД на жестком диске и на размер таблицы в памяти, и на ее кеширование.

    Давайте простой пример приведу: eсли взять 32битный процессор, у него за один такт проходит 32 бита. 32 / 8 = 4 байта.
    Взять например значение и прибавить к нему единичку - один такт ассемблера на саму инструкцию инкремента, еще один такт ассемблера на значение. Итого два такта. А для 8байтного значения, уйдет три такта, то есть скорость выполнения этой операции на 33% дольше. Этот пример на самом деле не совсем так работает, но он показателен в том смысле, что не стоит швыряться байтами налево-направо.
    Ответ написан
    2 комментария
  • Как разобраться в огромной БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    300 гб не очень маленькая, но и совсем не большая база. Вам нужно бы снять статистику по чтению/записи, посмотреть самые тяжелые запросы (такой функционал средствами mysql можно получить habrahabr.ru/post/31072/).
    Выяснить чего именно не хватает - проца, оперативки, диска на запись, диска на чтение?
    От этого уже и танцевать. может просто парочку ssd в рейд и хватит?
    Ответ написан
    Комментировать
  • Как сделать сокращатель ссылок?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    покупаете example.com
    создаете API для создания ссылок и использования ссылок
    profit. точнее debet.
    Ответ написан
    Комментировать
  • Как понять, на сколько высокой будет нагрузка на БД при определенном запросе?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Любой запрос займет больше секунды на 386sx

    Чтобы понять нагрузку, нужно понять мощность сервера. Вместо теоретических вопросов, сделайте замеры.
    Для этого существуют
    1) нагрузочные тесты
    2) архитекторы, которые понимают как запрос работает внутри, и по внешнему виду запроса могут предположить где будет основная нагрузк.

    Просто проведите тесты, запустив 1, 10, 100, 1000 запросов, замерив время.
    Ответ написан
    3 комментария
  • Как хранить электронные отчеты в БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Слишком общий вопрос.
    По такому вопросу можно предложить хранить даже в pdf.
    Вы сами решите какую задачу при хранении отчетов вы ставите. Много отчетов? Надо чтобы занимали мало места? Надо чтобы были доступны? Надо чтобы можно было изменять?
    Ответ написан
    2 комментария
  • В чем преимущества СУБД Oracle перед MySQL, PosgreSQL?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    И Mysql и Oracle и MSSQL и Postgres - профессиональные базы данных.
    Профессионализм заключается не в сложности используемых инструментах, а в адекватности их использования.

    Если мне предстоит задача поставить сайт-визитку, то любой профессионал скажет, что Оракл для этого не нужен.
    Если мне предстоит задача писать складской учет в среде MS на C#, я наверное предпочту MS SQL.

    Любой профессионал не будет брать фуру, чтобы поехать в кино, если есть форд. И профессиональным решением будет брать нужные инструменты для нужных задач. При этом фура не хуже и не лучше форда, у них разные весовые категории.
    А сравнивать технические характеристики и требования уже нужно по деталям. Так что друг неправ.
    Ответ написан
    Комментировать
  • Зачем ставят сервер баз данных на виртуалку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Реальные проекты, особенно мелкие - часто на виртуалках.

    Выделять каждому ученику реальный компьютер под базу данных - дорого, а учитывая, что для обучения нужна СЛОЖНАЯ база из 2.5 таблиц и 10 строк в каждой, то на одном компе можно целый класс виртуалок поднять для каждого, дешево и сердито.

    P.S. Практически весь хостинг, на котором сейчас крутятся сайты - это ВСЕ виртуалки.
    P.P.S. Весь бизнес по возможности также виртуализируют, если есть возможность. Исключения - высоконагруженные машины, и то...
    Виртуализация позволяет упростить процесс миграции, резервного копирования и т.д.
    Ответ написан
    Комментировать