Чем отличается mysql от sql: Никак не могу понять. Какие Отличия между mysql и sql? — Хабр Q&A – Чем отличается MySQL от SQL

sql - Что такое mongodb? Чем отличается от mysql? Стоит ли использовать?

Stack Overflow на русском

Loading…

  1. 0
  2. +0
    • Тур Начните с этой страницы, чтобы быстро ознакомиться с сайтом
    • Справка Подробные ответы на любые возможные вопросы
    • Мета Обсудить принципы работы и политику сайта
    • О нас Узнать больше о компании Stack Overflow
    • Бизнес Узнать больше о поиске разработчиков или рекламе на сайте

SQLite vs MySQL vs PostgreSQL: сравнение систем управления базами данных

Содержание

  1. Система управления базами данных
    1. Реляционная система управления базами данных
    2. Типы данных и отношений между ними
    3. Популярные и основные реляционные базы данных
  2. SQLite
    1. Типы данных SQLite
    2. Преимущества SQLite
    3. Недостатки SQLite
    4. Когда использовать SQLite?
    5. Когда отказаться от SQLite?
  3. MySQL
    1. Типы данных MySQL
    2. Преимущества MySQL
    3. Недостатки MySQL
    4. Когда использовать MySQL?
    5. Когда отказаться от MySQL?
  4. PostgreSQL
    1. Типы данных PostgreSQL
    2. Преимущества PostgreSQL
    3. Недостатки PostgreSQL
    4. Когда использовать PostgreSQL?
    5. Когда отказаться от PostgreSQL?

Система управления базами данных

Базы данных - это специально разработанное хранилище для различных типов данных. Каждая база данных, имеет определённую модель (реляционная, документно-ориентированная), которая обеспечивает удобный доступ к данным. Системы управления базами данных (СУБД) - специальные приложения (или библиотеки) для управления базами данных различных размеров и форм.

Реляционная система управления базами данных (РСУБД)

СУБД должна обеспечивать реляционную модель работы с данными. Сама модель подразумевает определенный тип связи между сущностями из разных таблиц. Чтобы хранить и работать с данными, такой тип СУБД должен иметь определенную структуру (таблицы). В таблицах каждый столбец может содержать данные разного типа. Каждая запись состоит из множества атрибутов (столбцов) и имеет уникальный ключ, хранящейся в той же таблице - все эти данные взаимосвязаны между собой, как описано в реляционной модели.

Типы данных и отношений между ними

Отношения в базах данных можно рассматривать как математическое множество, содержащее в себе число атрибутов, которые суммарно представляют собой базу данных и информацию, хранящуюся в ней (фраза для тех, кто понимает, что такое математическое множество).

При создании структуры таблицы каждое поле записи должно иметь заранее описанный тип (например: строка, целочисленное значение и т.д.). Все СУБД имеют в своем составе различные типы данных, которые не всегда взаимозаменяемы. При работе с СУБД всегда приходится сталкиваться с подобными ограничениями.

Заметка: если вам требуется использовать неструктурированные данные (т.е. записи в одной и той же таблице могут иметь разную структуру), то следует рассмотреть использование NoSQL (безсхемная СУБД).

Популярные и основные реляционные базы данных

В этой статье мы с вами рассмотрим три основных свобоно распространяемых СУБД.

SQLite - очень мощная встраиваемая система управления

MySQL - самая популярная и распространённая СУБД

PostgreSQL - наиболее продвинутая СУБД

Заметка: свободно распространяемое ПО всегда можно изменять под свои нужды. Почти всегда можно свободно получить копию репозитория из системы контроля версий.

Если вы заинтересованы в подобных копиях, то обратите внимание на некоторые из них, например MariaDB.

SQLite

Легко встраиваемая в приложения база данных. Так как это система базируется на файлах, то она предоставляет довольно широкий набор инструментов для работы с ней, по сравнению с сетевыми СУБД. При работе с этой СУБД обращения происходят напрямую к файлам (в эти файлах хранятся данные), вместо портов и сокетов в сетевых СУБД. Именно поэтому SQLite очень быстая, а также мощная благодаря технологиям обслуживающих библиотек.

Типы данных SQLite

  • NULL - значение NULL
  • INTEGER - знаковое целочисленное значение, использует 1, 2, 3, 4, 6, или 8 байт в зависимости от порядка числа
  • REAL - число с плавающей точкой, занимает 8 байт для хранения числа в формате IEEE
  • TEXT - текстовая строка, при хранении используются кодировки UTF-8, UTF-16BE или UTF-16LE
  • BLOB - тип данных BLOB, массив двоичных данных (предназначенный, в первую очередь, для хранения изображений, аудио и видео).

Заметка: более подробно о типах данных SQLite в официальной документации{:target="_blank"}.

Преимущества SQLite

  • Файловая структура - вся база данных состоит из одного файла, поэтому её очень легко переносить на разные машины
  • Используемые стандарты - хотя может показаться, что эта СУБД примитивная, но она использует SQL. Некоторые особенности опущенны (RIGHT OUTER JOIN или FOR EACH STATEMENT), но основные все-таки поддерживаются
  • Отличная при разработке и тестировании - в процессе разработки приложений часто появляется необходимость масштабирования. SQLite предлагает всё что необходимо для этих целей, так как состоит всего из одного файла и библиотеки написанной на языке C.

Недостатки SQLite

  • отсутствие системы пользователей - более крупные СУБД включают в свой состав системы управления правами доступа пользователей. Обычно применения этой функции не так критично, так как эта СУБД используется в небольших приложениях.
  • отсутствие возможности увеличения производительности - опять, исходя из проектирования, довольно сложно выжать что-то более производительное из этой СУБД.

Когда использовать SQLite

  • встроенные приложения - если вам важна возможность легкого переноса приложения и не важна масштабируемость. Например однопользовательские приложения, мобильные приложения или игры
  • прямой доступ к диску - при необходимости напрямую обращаться к диску вы можете выиграть при переходе на эту СУБД в функционале и простоте использования SQL языка
  • Тестирование - использование дополнительных процессов при тестировании функционала, очень замедляет приложение.

Когда отказаться от SQLite

  • Многопользовательские приложения - если вам необходимо обеспечить доступ к данным для нескольких пользователей, да и к тому же различать их по правам доступа, то, наверное, полноценная СУБД (например: MySQL) будет более логичным выбором
  • Запись больших объемов данных - одно из ограничений SQLite это операции записи. Разрешен только один процесс записи в промежуток времени, что сильно ограничивает производительность.

MySQL

MySQL - это самая распространенная полноценная серверная СУБД. MySQL очень функциональная, свободно распространяемая СУБД, которая успешно работает с различными сайтами и веб приложениями. Обучиться использованию этой СУБД довольно просто, так как на просторах интернета вы легко найдете большее количество информации.

Заметка: стоит заметить, что благодаря популярности этой СУБД, существует огромное количество различных плагинов и расширений, облегчающих работу с системой.

Несмотря на то, что в ней не реализован весь SQL функционал, MySQL предлагает довольно много инструментов для разработки приложений. Так как это серверная СУБД, приложения для доступа к данным, в отличии от SQLite работают со службами MySQL.

Типы данных MySQL

  • TINYINT - очень малые целочисленные значения
  • SMALLINT - малые целочисленные значения
  • MEDIUMINT - средние целочисленные значения
  • INT или INTEGER - стандартные целочисленные значения
  • BIGINT - большие целочисленные значения
  • FLOAT - маленькие значения с плавающей точкой (точность до одного значения после точки). Всегда знаковые значения
  • DOUBLE, BOUBLE PRECISION, REAL - Стандартные значения с плавающей точкой. Всегда знаковые
  • DECIMAL, NUMERIC - распакованное значение с плавающей точкой, всегда знаковое.
  • DATE - дата
  • DATETIME - дата и время в одном значении
  • TIMESTAMP - временная отметка timestamp
  • TIME - время
  • YEAR - год, 2 или 4 числа (4 - по-умолчанию)
  • CHAR - строковое значение фиксированной длины, справа всегда добавляются пробелы до указанной длины при сортировке
  • VARCHAR - строковое значение переменной длины
  • TINYBLOB, TINYTEXT - значение типа BLOB или TEXT, 255 (2^8 - 1) символов - максимальныя длина
  • BLOB, TEXT - значение типа BLOB или TEXT, 65535 (2^16 - 1) символов - максимальныя длина
  • MEDIUMBLOB, MEDIUMTEXT - значение типа BLOB или TEXT, 16777215 (2^24 - 1) символов - максимальныя длина
  • LONGBLOB, LONGTEXT - значение типа BLOB или TEXT, 4294967296 (2^32 - 1) символов - максимальныя длина
  • ENUM - перечисление
  • SET - множество

Преимущества MySQL

  • Простота в работе - установить MySQL довольно просто. Дополнительные приложения, например GUI, позволяет довольно легко работать с БД
  • Богатый функционал - MySQL поддерживает большинство функционала SQL.
  • Безопасность - большое количество функций обеспечивающих безопасность, которые поддерживается по умолчанию
  • Масштабируемость - MySQL легко работает с большими объемами данных и легко масштабируется
  • Скорость - упрощение некоторых стандартов позволяет MySQL значительно увеличить производительность.

Недостатки MySQL

  • Известные ограничения - по задумке в MySQL заложены некоторые ограничения функционала, которые иногда необходимы в особо требовательных приложениях.
  • Проблемы с надежностью - из-за некоторых способов обработки данных MySQL (связи, транзакции, аудиты) иногда уступает другим СУБД по надежности.
  • Медленная разработка - Хотя MySQL технически открытое ПО, существуют жалобы на процесс разработки. Стоит заметить, что существуют другие довольно успешные СУБД созданные на базе MySQL, например MariaDB.

Когда следует использовать MySQL

  • распределённые операции - если функционала SQLite не хватает, то стоит рассмотреть MySQL. Так как эта СУБД сочетает в себе продвинутый функционал и свободный доступ к исходному коду.
  • высокий уровень безопасности - система безопасности MySQL включает в себе простые и в то же время достойные способы защиты доступа к данным
  • Веб сайты и веб приложения - большинство сайтов и онлайн приложений спокойно работают с MySQL несмотря на некоторые ограничения. Будучи легкой в настройке и масштабируемой системой - MySQL проверена временем.
  • Индивидуальные решения - если вы работаете с каким либо специфическим проектом, MySQL легко сможет вам помочь благодаря широким возможностям в настройке и функционалом.

Когда лучше отказаться от MySQL

  • Соответствие стандартам -Так как MySQL не ставит для себя целью - полностью соответствовать стандартам SQL, то эта СУБД не полностью поддерживает SQL. Если в будущем вы планируете перейти на подобную систему, то MySQL - не лучший выбор.
  • Многопоточность - хотя некоторые движки БД довольно легко выполняют параллельное чтение, параллельные операции чтения-записи могут создать проблемы
  • Недостаток функционала - некоторые движки MySQL, например, не поддерживают полнотекстовый поиск.

PostgreSQL

PostgreSQL является самым профессиональным из всех трех рассмотренных нами СУБД. Она свободно распространяемая и максимально соответствует стандартам SQL. PostgreSQL или Postgres стараются полностью применять ANSI/ISO SQL стандарты своевременно с выходом новых версий.

От других СУБД PostgreSQL отличается поддержкой востребованного объектно-ориентированного и/или реляционного подхода к базам данных. Например, полная поддержка надежных транзакций, т.е. атомарность, последовательность, изоляционность, прочность (Atomicity, Consistency, Isolation, Durability (ACID).) Благодаря мощным технологиям Postgre очень производительна. Параллельность достигнута не за счет блокировки операций чтения, а благодаря реализации управления многовариантным параллелизмом (MVCC), что также обеспечивает соответствие ACID. PostgreSQL очень легко расширять своими процедурами, которые называются хранимые процедуры. Эти функции упрощают использование постоянно повторяемых операций.

Хотя PostgreSQL и не может похвастаться большой популярностью в отличии от MySQL, существует довольно большое число приложений облегчающих работу с PostgreSQL, несмотря на всю мощность функционала. Сейчас довольно легко установить эту СУБД используя стандартные менеджеры пакетов операционных систем.

Типы данных PostgreSQL

  • bigint - знаковое 8-ми битное целочисленное значение
  • bigserial - автоматически инкрементируемое 8-ми битное целочисленное значение
  • bit[(n)] - строка постоянной длины
  • bit varying [(n)] - строка переменной длины
  • boolean - булево значение (true/false)
  • box - прямоугольник на плоскости
  • bytea - бинарные данные (массив байтов)
  • character varying [(n)] - строковое значение переменной длины
  • character [(n)] - строковое значение постоянной длины
  • cidr - IPv4/IPv6 сетевой адрес
  • circle - круг на плоскости
  • date - календарная дата (год, месяц, день)
  • double precision - число с плавающей точкой двойной точности (8 байт)
  • inet - IPv4/IPv6 адрес хоста
  • integer - знаковое 4-ех байтовое целочисленное значение
  • interval [fields][(p)] - отрезок времени
  • line - бесконечная прямая на плоскости
  • lseg - отрезок на плоскости
  • macaddr - MAC адрес
  • mony - валютное значение
  • numeric [(p, s)] - точное численное значение с выбранной точностью
  • path - геометрическая кривая на плоскости
  • point - геометрическая точка на плоскости
  • polygony - многоугольник на плоскости
  • real - число с плавающей точкой одинарной точности (4 байта)
  • smallint - знаковое целочисленное значение (4 байта)
  • serial - автоматические инкрементируемое целочисленное значение (4 байта)
  • text - строковое значение переменной длины
  • time [(p)] [without time zone] - время суток (без часового пояса)
  • time [(p)] with time zone - время суток (включая часовой пояс)
  • timestamp [(p)] [without time zone] - дата и время (без часового пояса)
  • timestamp [(p)] with time zone - дата и время (с часовым поясом)
  • tsquery - текстовый поисковый запрос
  • tsvector - документ текстового поиска
  • txid_snapshot - пользовательский снимок транзакции с ID
  • uuid - универсальный уникальный идентификатор
  • xml - XML данные

Достоинства PostgreSQL

  • Открытое ПО соответствующее стандарту SQL - PostgreSQL - бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной системой.
  • Большое сообщество - существует довольно большое сообщество в котором вы запросто найдёте ответы на свои вопросы
  • Большое количество дополнений - несмотря на огромное количество встроенных функций, существует очень много дополнений, позволяющих разрабатывать данные для этой СУБД и управлять ими.
  • Расширения - существует возможность расширения функционала за счет сохранения своих процедур.
  • Объектность - PostrgreSQL это не только реляционная СУБД, но также и объектно-ориентированная с поддержкой наследования и много другого

Недостатки PostgreSQL

  • Производительность - при простых операциях чтения PostgreSQL может значительно замедлить сервер и быть медленнее своих конкурентов, таких как MySQL
  • Популярность - по своей природе, популярностью эта СУБД похвастаться не может, хотя и присутствует довольно большое сообщество.
  • Хостинг - в силу выше перечисленных факторов иногда довольно сложно найти хостинг с поддержкой этой СУБД.

Когда использовать PostgreSQL

  • Целостность данных - когда надежность и целостность данных - ваши требования, PostgreSQL будет, пожалуй, лучшим выбором
  • Сложные пользовательские процедуры - если вам необходимо использовать пользовательские процедуры, то PostgreSQL имеет встроенную поддержку для них
  • Интеграция - если в будущем вы планируете переход на платные СУБД, например Oracle, то сделать это с PostgreSQL будет довольно просто по сравнению с другими бесплатными СУБД
  • Сложная структура данных - по сравнению с другими открытими СУБД PostgreSQL предоставляет больше возможностей для создания сложных структур данных без необходимости жертовать какими либо аспектами.

Когда не следует использовать PostgreSQL

  • Скорость - если быстрое чтение для вас единственный фактор, то стоит присмотреться к другим СУБД
  • Простая настройка - если вам не нужна целостность данных, соответствие ACID или сложные структуры данных, то настройка PostgreSQL может изрядно потрепать вам нервы
  • Репликация - если вы не готовы потратить время и энергию на то, что мог бы с легкостью сделать MySQL, то наверное проще было бы на нем и остаться.

Научите M.B.A. тонкости Microsoft SQL Server (и чем он отличается от MySQL?)

С точки зрения пользователя базы данных, бэкэнд, как правило, не имеет значения, если они понимают некоторые основные понятия.

Первое и самое важное понятие для нетехнического пользователя-это GIGO (мусор в мусоре). Плохие данные-это бесполезные данные. Проверьте правильность всего, что вы вводите в базу данных. Вы действительно не хотите, чтобы продукт клиента был отправлен в Сан-Диего, VA вместо CA.

Тогда следующая самая важная вещь-это действительно понять ваш пользовательский интерфейс и как он работает. Я потратил много времени на исправление мусора, потому что пользователи не знали, что они должны были поместить в поля в базах данных (это помогло бы, если бы разработчики не разрешили вводить данные типа non-email в поле email, но вы не можете отправить email в 757-111-6789). Это никогда не хорошая идея, чтобы положить неправильный вид данных в поле, потому что у вас нет другого места, чтобы положить его. Как пользователь, вы можете понятия не иметь, для чего база данных будет использовать эти данные, и неправильные данные могут полностью остановить процесс или сломать что-то действительно важное. Если вы не знаете, что положить в поле, то спросите. Не кладите мусор в поле только потому, что это необходимо. (Подсказка, это требуется по причине, которая обычно означает, что это данные, критически важные для работы базы данных, не подделывайте эту информацию.)

Теперь, если этот человек делает отчетность, то критические понятия становятся пониманием булевой алгебры и очень сильным подтекстом соединений. Если у вас есть эти две концепции, у вас есть 80-90% того, что вам нужно для запроса базы данных.

Важное значение приобретает также специфика поддерживаемой базы данных. Вам нужно понять, что хранится в каких таблицах (или какие представления использовать) и как они связаны друг с другом. Приходя на новую работу, я бы сел с разработчиками, если это возможно, и получил обзор дизайна, и whatI нужно было бы знать, чтобы получить данные. Я бы рассмотрел существующие запросы к отчетам, чтобы увидеть, как в настоящее время извлекаются данные, и использовать их, чтобы задавать вопросы, если я не понимаю, что сделал человек. Даже специалисту по базам данных придется потратить некоторое время на это, когда он столкнется с новой базой данных, поэтому нет причин стесняться задавать эти вопросы, когда вы новичок.

Последнее, что нужно знать, как сообщить о проблеме разработчикам. Проблемы, о которых не сообщается, не исправляются! Проблемы, которые не воспроизводятся, потому что пользователь не предоставил снимки экрана и контекст для того, что она делала, когда произошла ошибка, также не исправляются. Новые поля данных, которые необходимы по мере изменения бизнес-требований, не добавляются в базу данных, пока разработчики не узнают о них (Пожалуйста, попросите поле Notes, если вам это нужно, вместо ввода нежелательных данных в поле, например email, которое вы лично не используете). Новые бизнес-требования часто требуют много работы в бэкэнде, чтобы изменить то, как все работает, это не так просто, как добавление поля в форму. Пожалуйста, помните об этом тоже, когда вы делаете запросы.

MS SQL или MySQL

 
beglec ©   (2006-04-08 13:28) [0]

Возникает потребность к переходу на SQL платформу.
В сами программы не нужно переделывать - они уже и так все пользуются SQL запросами. Но через одну мою процедуру. Моя процеДурка использует пока локальные базы Paradox.

Данные растут запросы тоже. Но пока все хорошо работает, причем довольно шустро, база не лопается - хотя уже и 400 тыс. записей - даже индексы не слетают. (Это я к тому, что здесь бывает часто жалуются, что Paradox это есть не хорошо) фигня - главное голова и руки.
Ну так вот - планируются существенные изменения и очень большое увеличение данных. По прикидкам, анализам и предварительным тестам - Paradox справится. Но затраты на создание такой вещи - существенно больше, нежели если этот проект делать на прямую с SQL сервером. Еще вскрылся один недостаток у Paradox это то, что он плохо работает с WWW (php). Мало кто его поддерживает. А интернет дело такое.

Так вот, пока не поздно надо делать выбор, но какой?
Подскажите пожалуйста
1. Ссылку, где доходчиво написано разница между MS SQL и MySQL? (после просмотра популярных статей (через поисковик) в internet на эту тему понял, что пишется везде одно и тоже и одна вата – размытость, ничего конкретного. Видимо друг у друга переписывают. Многое что написано неправда – проверено.
2. Напишите, кто уже писал программы на Delphi под эти сервера –  есть ли какие нибудь подводные камни – что бы их можно было сразу учесть при проектировании.

3. Какие компоненты можно использовать для работы с БД (кроме ADO) и в чем их преимущество?

В данный момент у меня уже стоит и MS SQL и MySQL
Выяснил следующее:
MS SQL - работает хорошо с Delphi, имеет быстрый коннект, это плюс
MySQL не совсем корректно работает с Delphi (нет компонентов), это минус
MySQL много платформенный, это плюс.
MS SQL имеет отличный анализатор и сбор статистики - это большой плюс

P.S. А еще меня вопрос все время мучает. А что конкретно то передает SQL сервер клиенту по сетке. Что именно передает SQL по сетке? Сжимает ли он их для более быстрой передачи? Где и как можно посмотреть трафик SQL сервера? Сколько байт, записей, передано? Было бы не плохо и про это почитать.

P.S.S. InterBase и Informix отпали – потому как умерли при создании в цикле 1 000 000 записей более чем на 4 часа. MSSQL и MySQL справились с этой задачей за 20 минут. Поэтому выбор остановился на них.

P.S.S. Еще есть выбор DB2, но по этому продукту у меня совсем мало русскоязычной информации, хотя и хвалят его очень и очень положительно и по скорости и по мобильности.

Спасибо.
Извините за большую писанину, просто хотел более четко изложить суть своей проблемы.


 
Nikolay M. ©   (2006-04-08 18:33) [1]


> хотел более четко изложить суть

А в результате - много воды о непонятных критериях "лучшести" (какой-то "быстрый коннект", "нет компонент для MySQL" - если ты их не нашел, это не значит, что их нет и тд).
Кстати,  цены MySQL vs MS SQL в расчет принимаются?
Ответы на все вопросы заслуживают отдельной статьи, а меценаты сейчас не в моде. Продолжайна блюдение. Ищи статьи, сравнения и все остальное. Можешь начать отсюда, форумы по обоим серверам присутствуют
http://www.sql.ru/forum/actualforum.aspx


 
Anatoly Podgoretsky ©   (2006-04-08 19:36) [2]

beglec ©   (08.04.06 13:28)  
В сами программы не нужно переделывать - они уже и так все пользуются SQL запросами.

Ты хочешь сказать, что у тебя универсальные запросы, тогда самое время их переделать.


 
atruhin ©   (2006-04-09 07:21) [3]


> InterBase и Informix отпали – потому как умерли при создании
> в цикле 1 000 000 записей более чем на 4 часа.

А может вы просто не умеете его готовить?


 
YurikGL ©   (2006-04-09 15:20) [4]


> MySQL не совсем корректно работает с Delphi (нет компонентов),
>  это минус

dbExpress


 
beglec ©   (2006-04-10 10:35) [5]


> Anatoly Podgoretsky

Изначально все программы проектировались таким образом, чтобы можно было переходить на другую SQL платформу без болезненно и без переделки запросов. И это мне удалось!


> Nikolay M. ©
> А в результате - много воды о непонятных критериях "лучшести"
> (какой-то "быстрый коннект", "нет компонент для MySQL" -
>  если ты их не нашел, это не значит, что их нет и тд).

я написал то что уже успел найти и попытался сократить время поиска - разместив свой вопрос сюда.


> atruhin ©   (09.04.06 07:21) [3]
> А может вы просто не умеете его готовить?

проверял не только я, но и знающие люди которые работали с этим базами.

После ночных поисков пока больше плюсов в сторону MySQL.

P.S. Да! цена - тоже фактор.


 
sniknik ©   (2006-04-10 11:00) [6]

> Изначально все программы проектировались таким образом, чтобы можно было переходить на другую SQL платформу без болезненно и без
> переделки запросов. И это мне удалось!
т.е. переводя на понятный язык, используются только те контрукции, которые поддерживаются всеми sql серверами?
тогда в выигрыше будет самый простой с неразвитой функциональностью сервер. (ну к примеру простая выборка select, на сервере поддерживающем/неподдерживающим тригеры будет (в идеале, не учитывая других факторов) выполнятся быстрее на неподдерживаемом... т.к. на те же проверки есть тригер/нет тоже время нужно). и т.д. любая возможность/особенность,  которая при использавании дает преимущества/скорость, при неиспользовании будет недостатком/тормозом (при сравнении с системой этой особенности не имеющей).

в общем, при твоем подходе, MySQL это лучший выбор. (и ирония одновременно, писать "универсально" для того чтобы потом, и изза этого, выбрать самый убогий движок... ;о)))

> P.S. Да! цена - тоже фактор.
0 vs 0 (если не гнаться за промышленными маштабами)


 
Anatoly Podgoretsky ©   (2006-04-10 11:11) [7]

beglec ©   (10.04.06 10:35) [5]
Только сверх простые запросы можно переносить без переделки


 
Sergey13 ©   (2006-04-10 11:15) [8]

Даже при формальной переносимости запроса, он бывает неработоспособен по сути. Например Select max(id) form table для получения ИД новой записи будет вполне работоспособен везде, однако пользоваться им в многопользовательской среде - мягко говоря неправильно.


 
Плохиш ©   (2006-04-10 11:40) [9]


> MS SQL - работает хорошо с Delphi, имеет быстрый коннект,
>  это плюс
> MySQL не совсем корректно работает с Delphi (нет компонентов),
>  это минус

Хотелось бы услышить, какие это есть специальные компоненты для работы с MSSQL?


 
beglec ©   (2006-04-10 11:45) [10]


> Плохиш

Разобрался со многими вещами уже.
например ADO имеет по умолчанию способо соединения с MSSQL
а что бы это дело заработало с MySQL - то нужно дополнительно скачивать приблуку с сайта ADO. Скачал ужо все робит.

MS SQL - идентификация пользователя проходит довольно быстро - быстрее всех по времени.
Потом идет по времени MySQL
самый долгий InterBase - пока не разобрался почему. Но идентификация пользователя доходит до 5 минут.


 
Sergey13 ©   (2006-04-10 11:48) [11]

2[10] beglec ©   (10.04.06 11:45)
Ты пишешь программу по установлению коннекта? 😎


 
Плохиш ©   (2006-04-10 12:32) [12]


> beglec ©   (10.04.06 11:45) [10]
> Разобрался со многими вещами уже.
> например ADO имеет по умолчанию способо соединения с MSSQL

Ну да, и клиента ставить не надо?


 
sniknik ©   (2006-04-10 12:42) [13]

> Ну да, и клиента ставить не надо?
в общем случае нет, он входит в MDAC. поставить ADO без клиента MSSQL это надо еще постараться... и еще не факт, что получится.


 
beglec ©   (2006-04-10 14:23) [14]


> Ты пишешь программу по установлению коннекта? 😎

Да нет :)))
просто клиенты ругаются когда долго коннект идет, не важно где 🙂

Многие ведь ругаются когда модем долго соединяется или Windows долго грузится :))) вот и долгий коннект с базой тоже выводит из себя народец. Нервный у нас народец нынче 🙂 - поэтому и является  данный факт (факт долгого коннекта) важным фактом при выборе ПО СУБД.


 
Sergey13 ©   (2006-04-10 14:33) [15]

2[14] beglec ©   (10.04.06 14:23)
Например, иногда, некоторые программисты во время коннекта открывают все датасеты (а некоторые могут запрашивать все записи из нехилых таблиц), и потом удивляются, что "коннект долгий". В случае с FB на ХР, если файл базы имеет расширение GDB, то нарываются на (кажется) резервное сохранение файла. Там это расширение зарезервировано. Разные, вобщем, бывают причины "долгого коннекта".


 
atruhin ©   (2006-04-10 15:24) [16]


> самый долгий InterBase - пока не разобрался почему. Но идентификация
> пользователя доходит до 5 минут.

Я же говорю, вы не умеете его готовить.

> [15] Sergey13 ©   (10.04.06 14:33)
> В случае с FB на ХР, если файл базы имеет расширение GDB,
> то нарываются на (кажется)

Именно так хуже то, что при таком варианте в случае сбоя XP база вылетает на дату воостановления 🙂

> проверял не только я, но и знающие люди которые работали
> с этим базами.

Приведи скрипт таблицы на которой вставка 1000000 записей занимает у тебя больше 4 часов. Посмотрим.


 
Курдль ©   (2006-04-10 15:34) [17]


> После ночных поисков пока больше плюсов в сторону MySQL.

Кстати, а она научилась работать с транзакциями, серверной логикой и т.п.?


 
beglec ©   (2006-04-10 15:53) [18]


> Кстати, а она научилась работать с транзакциями, серверной
> логикой и т.п.?

пишут что с 5.0 научился


> Sergey13 ©   (10.04.06 14:33) [15]

хорошо поразбираюсь - интересное замечание - спасибо


> Я же говорю, вы не умеете его готовить.

может быть, может быть.
я пока на стадии выбора, есть время повыбирать и послушать мнение бывалых.

Как говориться в спорах рождается истина.

в сторону MySQL смотрит также тот факт, что есть 2 программера пишушие на PHP и работаеют с MySQL - но пока пишут всякие мелкие справочники.
Если остаться на MySQL - то переделка их справочников займет мало времени. Но вот в будущем если SQL сервер будет выбран не верный то переделка этих маленьких справочников будет цветочками.
Соглашусь с тем, что каждый SQL сервер где то хорош а где имеет погрехи. Идеальных вещенй не бывает.
Например пока особо "SQL функции" не нужны. Но это может оказаться обманчивым - ведь я пока не знаю всю прелесть данного инструмента.
Есть большая потребность в "Ключах" потому как текущая модель практически вся построена на них. Кто как с ними работает :)))

Вороче на распутье я еще!
Спасибо всем кто помог хоть каким то дельным советом.


 
Sergey13 ©   (2006-04-10 15:58) [19]

>Есть большая потребность в "Ключах"
В смысле?


 
Курдль ©   (2006-04-10 15:59) [20]


> Есть большая потребность в "Ключах" потому как текущая модель
> практически вся построена на них. Кто как с ними работает :)))

Вообще, конечно, топик загадоШный, как и автор.
Что значит "потребность в ключах"? Имеются в виду первичные и внешние ключи? Модель реляционной базы всегда бывает построена на них. А как иначе?
А последнее предложение - это шЮтка, или вопрос?
Если вопрос, то все работают с ними до скучного однообразно, если для проектирования базы используют CASE инструменты. Последние не дадут про них забыть или использовать не по назначению.


 
beglec ©   (2006-04-10 16:25) [21]

Нет вопросов больше нет.
сижу вот только взвешиваю все за и против.
Считаю что прочитал достаточно для предварительного выбора.


 
Курдль ©   (2006-04-10 16:31) [22]


> beglec ©   (10.04.06 15:53) [18]
> Идеальных вещенй не бывает.

Кстати. Идеальных вещей не бывает. Идеальные СУБД - да.
Это oracle. Причем забавно, что Вы прошлись по всему спектру, от Парадокса до DB2, а про оракл - ни слова 🙂


 
Sergey13 ©   (2006-04-10 16:32) [23]

2[21] beglec ©   (10.04.06 16:25)
>Считаю что прочитал достаточно для предварительного выбора.
Отсюда вывод - ты прочитал недостаточно. 😎


 
beglec ©   (2006-04-10 17:20) [24]


> Отсюда вывод - ты прочитал недостаточно. 😎

Ключевое слово "предварительного"
а вот окончательно ... 🙂

oracle-> может быть и идеальна - но по просьбе трудящихся, руководства и других продвинутых пользователей было отброшено за пределы обсуждения. Не знаю почему. Но четко было сказано - Oracle не предлагать - поэтому обсуждения по нему и не было.


 
sniknik ©   (2006-04-10 17:26) [25]

> Идеальные СУБД - да. Это oracle.
особенно идеально там реализован сетап... (версия 8i) ;о))
с установкой и утилитами реализованными исключительно фанатами оракла и на добровольной основе... контере производящей "идеальную" СУБД, этим заниматься както недосуг...

установка заработала только после двух патчей (чтото помнится с p4 связано было), и дополнительного переписывания файлов с образа рабочей версии. т.е. это был фактически третий патч. собрать все в один, естественно (по причине что писалось разными людьми) нельзя... встроить в сетап невозможно...

3 раза сталкивался с ораклом, 2 из них впечатление отвратное, 1 так себе, ничего особенного. идеальности не "просек", не повезло наверное... 😉


 
sniknik ©   (2006-04-10 17:29) [26]

> Но четко было сказано - Oracle не предлагать
поддерживаю. если есть выбор между ним и MSSQL то... выбора в общем то и нет. MSSQL гораздо более безпроблемнее, и проще в обслуживании, и вроде дешевле (но тут не скажу точно надо сравнивать последние цены).


 
Джо ©   (2006-04-10 22:26) [27]

А, кстати, вариант с PostgreSQL обсуждался?


 
ANB ©   (2006-04-11 09:15) [28]


> если есть выбор между ним и MSSQL то... выбора в общем то
> и нет.

Конечно нет. Оракл - однозначно.


 
Курдль ©   (2006-04-11 10:14) [29]


> MSSQL гораздо более безпроблемнее, и проще в обслуживании

Мы ставили сервера оракла в такие фирмы... Ну, например, в одном мед. центре сисадмин - по совместительству врач. Так вот оракл как туда поставили и на несколько лет - тишина. Пока у них железо не повалилось. База осталась "без единой царапины". Вот опчть год от них ни слуху - ни духу (только регулярно оплачивают счета за техподдержку).

Кстати, MS SQL 2005 уже версионник, а не блокировщик, как его предшественник? (А то я что-то в хвалебных анонсах эту заявку видел, а после релиза что-то не найду...)


 
sniknik ©   (2006-04-11 10:48) [30]

> Мы ставили сервера оракла в такие фирмы...
вот именно что ставили... сами. а с MSSQL без проблем проходит вариант с установкой всего самим юзером, и без дальнейшей поддержки, с трудом представляю что могбы обяснить юзеру удаленно как ему поставить сервер оракла (помня собственный опыт), для MSSQL простого руководства на 3х листах (в основном картинки) обычно хватает, для версий c MSDE и того не надо все общем сетапе ставится.
не знаю, может у оракла что и изменилось, уже же 10версия есть, а сужу по 8й (с чем столкнулся, по тому и сужу...), но смотреть снова не хочется, впечатление уже потерял... 😉

> Кстати, MS SQL 2005 уже версионник, а не блокировщик
а х.з. у нас пока 2000й, 2005й проверяли на возможность перехода (в общем положительно, но кое чего мне там не понравилось по сравнению с 2000м) когда он был еще бетой, год назад примерно но пока не перешли. а потому и не было углубленных выяснений что там к чему.


 
Курдль ©   (2006-04-11 10:57) [31]


> не было углубленных выяснений что там к чему.

Ну так ведь не иголку в сене ищем!!! Такое разительное отличие, как блокировщик/версионник можно было заметить, раз Вы апологет MS SQL Server?! 🙂
Мое отношение к продуктам MS разительно изменилось с недваних пор. Их последние ОС вовсе не кажутся мне упадочными. А уж MS VS - вообще непревзойденный инструмент! Честно говоря, я жду - не дождусь, когда же у них появится конкурентноспособная СУБД. Но пока, как я понимаю, грустное расставание с ораклом еще не близко.


 
Sergey13 ©   (2006-04-11 11:01) [32]

2[30] sniknik ©   (11.04.06 10:48)
Мне кажется, что легкость установки сервера БД масштаба предприятия юзером, не такое уж и преимущество. Хотя надо признать, что проблемы у 8-ки на П4 при установке действительно были. Но винить в этом Оракл, немного не корректно, ибо писался сервер еще до появления П4.


 
Курдль ©   (2006-04-11 11:14) [33]

Я не ораклевый админ и даже не особо с ним разбирался.
Однако, ставил всегда сам визардом "по умолчанию".
Ни разу проблем не поимел.
Согласен, если речь идет о промышленных крупных базах (а не тестовых, как в моем случае), то ставить должны только специалисты. Однако, правильно поставленный оракл дальнейшего вмешательства не требует.

Мы как-то делали один проект, и в процессе пуско-наладки даже не ездили к заказчикам. Научили пользователей (даже операционисток) снимать/заливать дамп и слать нам по почте - и все. Больше к их ораклу мы не прикасались.


 
Sergey13 ©   (2006-04-11 11:22) [34]

2[33] Курдль ©   (11.04.06 11:14)
>Однако, правильно поставленный оракл дальнейшего вмешательства не требует.
Только если он не работает. 😎


 
sniknik ©   (2006-04-11 13:02) [35]

> Ну так ведь не иголку в сене ищем!!! Такое разительное отличие, как блокировщик/версионник можно было заметить, раз
> Вы апологет MS SQL Server?! 🙂
и как это заметить на установке сервера, последовательном запуске некоторых наших программ на предмет работают ли без переделок, проходу по утилитам работы с ним и удалении... ? я даже ни одного сложного запроса в нем не выполнил. если по этому я должен был понять ... ты слишком хорошего о бо мне мнения, я не понял.

и потом я не "апологет", я просто с ним работаю (в основном). перейдем на оракл буду работать с ним. только это вряд ли произойдет ... т.к. в одном из моих столкновений (неудачных) было замешано и начальство, а было это на "презентации" системы на оракле (толи дилерами толи дистрибюторами которой мы должны были бы стать), презентация закончилась полным крахом. так что у начальства (а от него в общемто зависит) впечатление тоже не очень... и даже еще хуже т.к. оно не разделяет оракл и систему с его использованем написанную... хотя в этом случае большая часть проблем была именно изза системы, как ее написали. (а когда "впаривали" основной упор делали на "да у нас самая крутая, у нас оракл, круче не бывает и т.д." т.е. сами же не разделяли, пытались "примазатся" к ораклу т.е. типа один факт его использования делает систему круче всех)

> сНаучили пользователей (даже операционисток) снимать/заливать дамп и слать нам по почте - и все.
круто, даже операционисток задействовали, бедных, их то за что? ;о)
ну если рассказывать про курьезы то был случай когда админ на второй месяц работы только догадался что там какойто сервер стоит, а не просто сама по себе программа рабоает. (иконку увидел "нестандартную" в трее) простые юзеры естественно до сих пор не в курсе, да и должны быть.

Sergey13 ©   (11.04.06 11:01) [32]
> Мне кажется, что легкость установки сервера БД масштаба предприятия юзером, не такое уж и преимущество. Хотя надо
> признать, что проблемы у 8-ки на П4 при установке действительно были. Но винить в этом Оракл, немного не корректно, ибо
> писался сервер еще до появления П4.
ну про промышленные маштабы никто не говорил. а "претензия" у меня не к проблеме, если не понял, а бардаку в сетапе, проблему то давно решили, иначе патча бы не было. но почему все так и осталось на уровне любительских "заплаток"? там бы где у MSSQL давно был бы кумулятивный (вбирающий все ранние) SPх, там у оракла на диске просто набор папок даже без общего описания, и порядка установки, а ставить все патчи надо в строгой очередности. (в одной из очередных попыток пытался исходную установку "накрыть" последним переписываемым образом, не получилось, многих файлов просто не хватало. поставить после него первый... версия не та. и т.д.)

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

и еще впечатление, что они больше чем разработкой и удобствами пользователя озабочены внедрением в сознание масс мифа "оракл-это круто", по аналогии "C - язык проффесионалов". (обьяснять что язык и профессионализм в основном не связаны думаю не стоит 😉
да видимо досталось им изначально неплохое ядро... но после власть в компании захватили маркетологи и политологи (и мифологи ;)...
ИМХО


 
beglec ©   (2006-04-11 13:41) [36]

эээххх
результат получился тот же самый :)))
столкнулись два лагеря
Аля Oracle и аля MS SQL :)))
кто то хвалит чтото, кто то хаит чтото. Данная картинка наблюдается везде на форумах.

Лично я склонился к MySQL :))) изПисал ажно 3 листа печатного текста сравнительных характеристик - пока документальных 🙂

сегодня выложу рельные тесты
ради научного эксперемента скачал oracle - установлю - посмотрим

постараюсь сделать сравнение
MySQL
MS SQL
ORACLE

P.S. Проблему с MySQL связывают скорее всего с его устнановкой :)) Действительно, это проблема, особоенно под Windows 🙂 но я разобрался - теперь ставлю MySQL на любую машину гораздо быстрее, чем другие подобые продукты :)))
Хотя есть опредлеленный геморой с файлами *.cfg 🙂 Но в совокупности все такие ставится быстрее.


 
Anatoly Podgoretsky ©   (2006-04-11 14:04) [37]

Ты хочешь нас уговорить? Зря.


 
Sergey13 ©   (2006-04-11 14:07) [38]

2[36] beglec ©   (11.04.06 13:41)
>сегодня выложу рельные тесты
Я боюсь, что после беглого знакомства, у тебя не получатся реальные тесты.


 
beglec ©   (2006-04-11 14:18) [39]


> Ты хочешь нас уговорить? Зря.

нет 🙂 уговариваться никого не собираюсь. Уважаю право выбора каждого!


> Я боюсь, что после беглого знакомства, у тебя не получатся
> реальные тесты.

Да сложные тесты провести не удастся - но простенькие тоже многое покажут.

А по большому счету мы все равно до конца, никогда не используем весь функционал любой системы 🙂

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

Да я сам не особо его использую, хотя вещь сильная. Также и с Windows - где 90% мы не используем 🙂 также и в SQL серверах. Так зачем мудрить?
Считаю, что лучше посмотреть то, что лучше будет работать с запланироваными вещами, нежели пытаться объять необъятное.


 
Evgeny V ©   (2006-04-11 14:26) [40]

MySql для web не худший выбор. Ставте то, что ваша команда сможет сопровождать и обслуживать, на чем умеете писать. Про IB -

> atruhin ©   (09.04.06 07:21) [3]
>
> > InterBase и Informix отпали – потому как умерли при создании
>
> > в цикле 1 000 000 записей более чем на 4 часа.
>
> А может вы просто не умеете его готовить?

соглашусь - просто у вас не было опыта работы с этими СУБД. Но я бы все же остановился на Оракл, если у вас кто-то с ним работает, умеет администрировать, настраивать.
Про долгие коннекты - при написании серверных приложений для веб для приличного коиличества пользователей не испоьзуют процедуру коннекта для каждого юзера, а используют пул соединений. Не так важно, к какой СУБД быстрее будет происходить коннект, это все равно по времени емкая операция. А с пулом соединений вы будете быстрее получать доступ к базе.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *