Ответы пользователя по тегу PostgreSQL
  • Стоит ли хранить базы данных на SSD?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    сервер базы стоит на SSD
    Я думаю, где стоит сам сервер - особой разницы нет.

    Меня интересует стоит ли хранить сами базы на SDD или лучше их перенести на HDD для продления жизни SDD?
    Для ответа на этот вопрос, нужно оценить следующие факторы:
    1. Оно Вам действительно нужно, что бы базы работали на SSD, скорости HDD не хватает?
    2. Резервирование диска? Т.е. если диск "крякнется" - есть дублирующий носитель, RAID или что-то ещё подобное? Если у одного из дисков он есть - лучше хранить на том диске, у которого оно есть.

    3.
    Стоит отметить что базу используя для личной разработки.
    Дочитал до этого пункта и... Из личного опыта могу рассказать Вам одну историю... Есть у нас сервер 1U, купленный изначально "для работы", потом мы его отдали под проект. В сервере среди прочего стоит SSD, самый обыкновенный, на 120Гб, из числа тех что стоят сейчас в районе 1500руб., стоит он там уже более 2-х лет (с того момента как мы его отдали проекту), ежедневно и беспрерывно, 24х7 диск "молотит" база достаточно крупного проекта (и сам проект стоит там же), изначально было много опасений на тему того, что диск не проживёт там и месяц... но, любопытство всё же пересилило и мы решили попробовать. Результат - по прошествии 2+ лет "здоровье" диска в районе 74%, думаю ещё года 3 он там проживёт за милую душу. Единственное отличие нашего диска от тех, что продаются сейчас - у него MLC-память, но что-то мне подсказывает, что этот факт никак не даёт диску сколь-нибудь фантастическую живучесть по сравнению со всеми остальными.

    P.S. С учётом цен на SSD на сегодняшний день, и того, что Вы собираетесь его использовать даже не в боевых условиях - я бы не стал забивать себе голову такими мелочами. Храните базу там, где Вам удобнее. Скорее всего, диск будет выброшен и заменён на другой раньше по техническим причинам, чем успеет "сдохнуть".
    Ответ написан
    1 комментарий
  • Adminer или PostgreSQL генерят ошибку синтаксиса при создании таблицы из SQL-редактора?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Но при попытке создать таблицы в редакторе SQL-запросов возникает ошибка синтаксиса на первом же поле таблицы. Проблема в Adminer или PostgreSQL ?
    Наиболее вероятно, что проблема в SQL-коде, который Вы пытаетесь запустить/выполнить.

    Посоветуйте нормальный редактор для PostgreSQL (без разницы уже под Винду или Линукс).

    1. Navicat
    2. EMS
    3. SQL Maestro
    4. PGAdmin-IV и PGAdmin III LTS от BigSQL
    5. И другие, например эти или вот эти и т.д.

    P.S. Из всего этого изобилия, лично мне понравились: PGAdmin, Navicat и поделка от EMS.
    Ответ написан
  • Как в postgres вытащить записи, относящиеся ко дню определенного timestamp?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Не знаю, возможно есть решения конкретно лучше и не уверен, что я правильно понял Ваш вопрос... Но если Вам нужно выбрать все даты без учёта времени (поля типа TIMESTAMP), то в PostgreSQL вполне работает такая же конструкция как и в других БД:
    SELECT * FROM table1 WHERE DATE(timestamp_field) = '2017-10-09';
    Ответ написан
    Комментировать
  • Вопрос к опытным админам. Где набраться достаточно опыта в кратчайшие сроки?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    С учётом того, что по Postgres'у я уже не первый год возвращаюсь к чтению его документации - думаю, что "самоучителя" вменяемого, вряд ли найти удастся. Или это будет книга просто феерического объёма.

    По MySQL - в своё время мне понравилась книга, автор (или соавтор) которой является некто "Кузнецов". Неплохая довольно книга была, на мой взгляд. Но, тут стоит сделать поправку - что это книга скорее про SQL-возможности базы, нежели про её глубокий анализ, тонкую настройку и т.д.

    Общая теория реляционных БД - на эту тему, я думаю, Вы без проблем книги найдете.

    Телефония - вообще плохо знаком с темой и особо не интересовался, пропущу.

    Администрирование Linux - очень мало вероятно, что Вы найдете что-то полноценное. Во первых, по тому, что эта тема тянет за собой целую цепочку буквально всего, от сети и сетевых протоколов заканчивая механизмами ядра. Linux - это не только несколько штук/десятков/сотен/... команд в командной строке, это буквально всё, от установки софта и настройки веб-сервера до леший ещё знает чего. Вы легко найдете интересующий по какой-то конкретной теме, например, по работе с командной строкой, или по настройке того же веб-сервера, или по настройке iptables например. Но с учётом того, что по одному только iptables уже написана не одна книга (это же относится к командной строке, текстовому редактору vi и т.д., по всем этим темам есть как минимум одна книга посвященная только ей), представьте себе объём информации по теме "администрирование".
    Ответ написан
  • Где ошибка в запросе?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Хочу чтобы вывелся результат, в котором первый столбец - значения table1.items, второй столбец - значения table2.items делаю так:

    Попробуйте так:
    select table1.items, table2.items from table1 left join table2 on true

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

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    собрался делать "Система управления школьниками"
    - всегда о такой мечтал!

    Простите, не сдержался, далее по делу:
    Я не могу знать Ваши личные предпочтения и манеры преподавания к которой Вы привыкли или считаете наиболее верными или предпочтительными, но в своей преподавательской практике, я не редко использовал метод "визуализации" происходящего. Довольно сложно объяснить человеку, который не работал с сетями, что такое IP4-пакет... но, когда рисуешь это визуально, качество восприятия значительно улучшается.

    Собственно, к чему я это... Возьмите лист бумаги, или холст (paint, photoshop, etc.), или программу для рисования блок-схем, или программу для создания скетчей или что-то подобное и попробуйте отрисовать все таблицы/объекты БД и связи между ними. Так же, аналогичный функционал есть во многих программа для работы с БД (визуализация таблиц и их связей). Когда Вы будете визуально видеть и представлять объекты - гораздо проще воспринимать происходящее.

    Пример из жизни - попробуйте объяснить человеку, что такое таблица реляционной БД... а если провести аналогию с листом из Excel - в 95% случаев, понимание приходит практически моментально.

    Так же могу сказать, что выбор на начальном этапе PostgreSQL - не лучшая идея. PostgreSQL - очень классная БД, если Вы действительно понимаете зачем она Вам нужна и почему именно она. То есть, в тех случаях, когда Вам уже жмут "MySQL-штаны" и не хватает простора для действий и нескольких сотен лишних параметров, которые нужно подкрутить и поднастроить, а так же феерического количества параметров и возможностей самой БД - PostgreSQL будет оптимальным выбором, в ином же случае, Вы будете проклинать мир, разработчиков и всё сущее, постоянно сталкиваясь с некоторыми трудностями, которые иногда могут даже показаться глупостями (хотя, в 99% случаев это не так). Например, чего только стоит момент, что в PostgreSQL нет "табличных движков", или нельзя поменять местами ранее созданные колонки в таблице без полной перезаписи всей таблицы, или дюжина индексов (и какой выбрать?!), против куда более скудного количества в MySQL...

    Мои студенты довольно часто сталкивались с подобными проблемами, по этому, мы пришли к такой практике - база проектируется и прототипируется на MySQL, меняется там до посинения, пока не будет выверен действительно нужный вектор развития БД, код обкатывается... а потом, проект легко и непринуждённо переезжает на PG, где впоследствии снабжается некоторыми плюшками и полезностями уровня PG (теми, который в MySQL-е нет).

    Я рекомендую Вам, так же как и моим студентам - сначала спроектировать базу в MySQL, мы обычно делаем это в программе HeidiSQL (бесплатная), всё очень наглядно и разноцветно. Обкатать Ваш код и логику работы БД, а потом уже, если сильно не терпится - переносить на Postgres.

    Из личного опыта, могу сказать, что многие выбирают PostgreSQL, т.к. он(а) "круче". Это не совсем так, или, совсем не так... Из множества проектов, на PG мы поставили только один, там база данных исчислялась многими десятками и сотнями гигабайт, количество таблиц приближалось к тысяче, а кол-во записей в отдельно взятых таблицах - десятками миллионов. Но, даже сейчас я работаю в поддержке проекта, объёмы данных которого переваливают за 1Тб, и всё прекрасно живёт на MySQL. По этому, если Вы выбрали PG исключительно по каким-то идеологическим, а не техническим соображениям - подумайте ещё раз.
    Ответ написан
    Комментировать