Статьи

Выходя за пределы MySQL — высокопроизводительные решения для баз данных

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

Вы сдаетесь и сопротивляетесь росту? Нет, вы мигрируете. MySQL — не единственная система баз данных. На самом деле у вас есть много разных систем на выбор — системы, которые имеют свои сильные и слабые стороны и которые предлагают ряд расширенных функций, которые недоступны в MySQL. Эти функции включают в себя хранимые процедуры, триггеры, атомарные обновления и целостность внешнего ключа, и это те виды функций, которые обеспечивают степень масштабируемости, необходимую для быстрого поиска в поисковых системах и других крупных сайтах.

Не все эти решения являются дорогостоящими — некоторые даже бесплатны. И более дорогие решения, такие как Oracle и Microsoft SQL Server, могут быть предоставлены хостинговыми компаниями, что также снижает стоимость и сложность их обслуживания. Это одно большое преимущество MySQL: из-за его простоты любой может его поддерживать. Многие из этих других серверов требуют внимания полностью обученного администратора базы данных (DBA), но с помощью размещенного решения вы можете значительно снизить эту стоимость.

Небольшой фон SQL

SQL (ess-que-el) является стандартом для хранения данных. SQL является аббревиатурой от языка структурированных запросов, и этот язык можно использовать для доступа к данным из баз данных и файловых систем. SQL основан на другом подобном языке под названием Sequel. Это создало некоторую путаницу в сообществе разработчиков, так как многие считают, что SQL — это простое сокращение имени старого языка.

Сиквел был создан в середине 1970-х годов исследователями на объекте IBM в районе Сан-Хосе, штат Калифорния. Эта работа была основана на документе, опубликованном доктором Э.Ф. Коддом в июне 1970 года, под названием «Реляционная модель данных для больших общих банков данных».

IBM продолжила разработку Исследовательской базы данных и API под названием Sequel. К концу 1970-х эта работа превратилась в продукт под названием СУБД SQL / DS. Эта новая система была основана на том, что станет стандартом SQL, и предполагалось сделать доступ к данным универсальным.

Когда было объявлено о выпуске SQL / DS, многие конкуренты выпустили аналогичные продукты на рынок, используя тот же стандарт SQL, и IBM была выбита на рынок неизвестной компанией. Первой была запущена небольшая компания Relational Software Inc., и как только ее программное обеспечение стало успешным, компания сменила название на Oracle Corporation. По сей день Oracle доминирует на рынке RDBMS со своими продуктами. Но об Oracle позже.

Несмотря на то, что каждый из этих продуктов основан на стандарте SQL, каждый из них реализует определенные функции по-разному, и поэтому некоторые вещи сильно различаются от пакета к пакету (звучит знакомо?). Все они охватывают основы DDL (язык определения данных) и DML (язык манипулирования данными). Тем не менее, основной момент, в котором они отличаются, заключается в их функциях оптимизации и DCL (Data Control Language). Это хорошая новость для вас, потому что основная терминология одинакова: ваши базовые запросы и разметка таблиц будут практически одинаковыми на разных серверах (большинство людей не используют подмножество DCL в повседневной разработке).

Общие условия и особенности

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

  • Хранимые процедуры — это фрагменты кода, которые используются для изменения результатов запроса или для изменения данных в таблице. В отличие от запроса в вашем скрипте, они хранятся в скомпилированном формате в самой базе данных, что обеспечивает более быстрое выполнение и время отклика. Каждая из этих баз данных поставляется с процедурным языком вне SQL, который позволяет вам писать и запускать хранимые процедуры. Это экономит время по сравнению с обычным запросом, поскольку СУБД не нужно выяснять, как выполнить запрос, она просто должна его выполнить. Он также позволяет добавлять функции и исправлять ошибки, практически не меняя код переднего плана.
  • Триггеры — это специализированные хранимые процедуры. Триггеры — это функции, которые автоматически запускаются сервером базы данных в ответ на определенные вами события, такие как добавление или изменение записей в таблице.
  • Атомные Обновления — Они обычно называются «Транзакции». Это позволяет вам собирать серии запросов в одну группу, чтобы они рассматривались как единое целое. Таким образом, если один запрос завершится неудачно или будет отменен, остальные будут отменены, что предотвратит ввод частичных транзакций в вашу систему. Атомные обновления необходимы для обработки транзакций OnLine, а также для поддержания финансовой безопасности вашего бизнеса и клиента.
  • Внешние ключи — Они обеспечивают отношения в реляционной базе данных. Внешние ключи позволяют убедиться, что данные действительны, без необходимости перепроверять код или беспокоиться о дублирующих записях. Эти ключи применяются с использованием существующих индексов и методов запроса таблиц на сервере, что делает их очень быстрыми и надежными.
  • Представления — это специальные таблицы. С помощью View вы можете создать внешний вид таблицы, используя стандартные запросы SQL. Это позволяет выполнять объединения между таблицами без снижения производительности при проверке индексов и сопоставлении строк. Представление поддерживает все эти совпадения для вас, чтобы они были доступны, когда они вам нужны. Представления также хороши для предоставления подмножеств данных различным людям. Например, представления могут позволить вам убедиться, что ваши сотрудники службы поддержки никогда не увидят информацию о кредитной карте клиента — что касается представления, то этой информации просто не существует.

А теперь перейдем к решениям!

Postgre SQL

Postgre привносит некоторые уникальные особенности в мир баз данных SQL. Это позволяет разработчику создавать реляционные объекты для создания базы данных. Эти объекты допускают наследование, что само по себе является довольно продвинутой функцией на сервере базы данных. Postgre также включает другие функции, которых нет в MySQL.

К ним относятся триггеры, хранимые процедуры и атомарные обновления. Postgre основан на коде, разработанном Университетом Беркли в Калифорнии, и распространяется под открытой лицензией GNU. PostGre SQL распространяется бесплатно по лицензии GPL. Сервер работает на компьютерах Linux или Unix без изменений, а клиенты также будут работать на Windows без изменений.

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

Postgre SQL является единственным сервером базы данных с открытым исходным кодом, который поддерживает процедурные языковые конструкции, такие как хранимые процедуры и триггеры. Для этих команд используется язык PL / pgSQL. PL / pgSQL отформатирован и структурирован как код PL / SQL, используемый на сервере базы данных Oracle. Я уверен, что это не ошибка — и это дает разработчику хороший путь обновления, требующий минимальных усилий по конвертации, если вы перерастете Postgre.

Одна вещь, которая мне действительно нравится в Postgre, — это уровень документации, аналогичный тому, который часто встречается на более коммерческих серверах. Каждая отдельная функция, то есть программист или разработчик, доступна в отдельном файле Adobe Acrobat, что облегчает расположение функций.

В целом, если вам нужно решение с открытым исходным кодом, и вы переросли MySQL, вы должны рассмотреть Postgre как альтернативу. Он предоставляет функции, необходимые для решения для небольшого предприятия, стабильного механизма и активной разработки.

Интернет сайт
http://www.postgresql.org/

IBM DB2

Это выход IBM на арену баз данных высокого уровня. Они называют DB2 Universal Database, потому что она должна работать на всех платформах. Он даже работает на оборудовании мэйнфреймов в таких системах, как OS / 390. Лично я не использовал DB2, но перечислил ее здесь как вариант, который вы могли бы рассмотреть. Более новые версии поставляются в комплекте с программным обеспечением IBM Websphere, драйверами ADO и ODBC, интерфейсом для подключения к базе данных с веб-сервера и пользовательским модулем, позволяющим подключаться к коду PERL через модуль DBI PERL.

IBM только что выпустила 7-ю версию этого пакета, которая популярна на оборудовании IBM и часто поставляется предварительно установленной на более крупных компьютерах. В сочетании с мощным набором инструментов для быстрой разработки Websphere и надежными функциями Lotus Notes, DB2 может предоставить сбалансированную интегрированную платформу для удовлетворения потребностей большинства компаний в обработке данных.

С помощью этой системы IBM стремится предоставить единое решение, которое будет всем для всех. Эта версия включает в себя такие функции, как данные XML, обработка мультимедийных файлов, вывод через Интернет, поддержка Java и многое другое.

Маленькая чашка Явы

Как и многие другие серверы баз данных, доступные сегодня, IBM интегрировала возможности Java в свой продукт DB2, что позволяет разработчику создавать новые и уникальные функции и расширять библиотеку DB2, используя обычные повседневные инструменты. DB2 использует две разные технологии Java: Java Database Connectivity (JDBC) и встроенный SQL для Java (SQLJ). Оба могут использоваться для создания приложений Java и апплетов, которые обращаются к DB2.

JDBC обращается к информации в базе данных DB2, обращаясь к интерфейсу командной строки базы данных. Это может привести к более медленному доступу, чем при использовании хранимых процедур или триггеров с использованием SQLJ. SQLJ использует классы JDBC для подключения к базе данных, но хранит скомпилированные запросы в своем байтовом коде, чтобы ускорить планирование и выполнение.

Ценовая путаница

Как я уже говорил, DB2 объявляется способной работать на любой платформе. По большей части это так, но некоторые модули доступны только для определенных платформ. DB2 поставляется со сложной схемой ценообразования и лицензирования, в которой IBM рассчитывает стоимость на основе используемых модулей. Хотя это позволяет вам выбирать то, что вам нужно, но если вы ищете полный пакет, вы можете потратить больше, чем можете себе позволить.

По моему мнению, DB2 нуждается в некотором улучшении, чтобы стать «универсальным решением для баз данных». Однако, если вы используете другое программное обеспечение IBM (например, Websphere и Notes), которое оборудовано для обработки быстрого доступа к серверу DB2, вам следует воспользоваться этим и использовать эту базу данных.

Интернет сайт
http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main

Sybase Adaptive Server

По данным сайта Sybase:

Sybase Adaptive Server® Enterprise разработан для тех, кто знает, что им нужно, — элегантное решение для управления данными в корпоративных средах с интенсивным использованием транзакций.

Если вам нужно было описать Sybase в одном предложении, это хорошее решение для использования. Их продукты являются лучшими для решения этих задач для малого и среднего бизнеса (от 1000 до 5000 пользователей). Sybase ASE — это база данных, на которой я изучал SQL, и я все еще думаю, что это хорошее решение. Самым последним рабочим выпуском является версия сервера базы данных версии 12.0, а в прилагаемом к нему наборе приложений появились новые функции, которые лучше интегрируют его в мир электронного бизнеса. Новая версия 12.5 также находится в стадии бета-тестирования.

Transact SQL

Ядром программного обеспечения Sybase является процедурный язык Transact SQL. Это полный язык программирования с почти таким же количеством опций, как PHP или Java. Это позволяет разработчику создавать целые приложения, управляемые базой данных, не выходя из среды SQL.

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

Вы можете сделать все это в Transact SQL до того, как результаты будут переданы в сценарий, и, поскольку они скомпилированы, он выполняется намного быстрее и без каких-либо задержек.

Другие преимущества

Sybase предоставляет полный набор функций, которые включают хранимые процедуры и триггеры, интеграцию C ++ и Java, поля Identity (аналогично автоматическому приращению MySQL), обновления Atomic и внешние ключи. Sybase работает на Windows NT, Linux и Unix. Вы можете скачать несколько версий для бесплатного использования на Redhat Linux, что является преимуществом для сообщества интернет-разработчиков. Новая бета-версия Sybase включает в себя несколько интересных функций для мира интернет-разработок. Три из наиболее интересных из них:

  • XML-запросы — Sybase представила классы хранения XML в ASE с версией 12. Продолжение этой интеграции в ASE 12.5 предоставляет программистам инструменты и возможность создавать SQL-подобные запросы с использованием XQL, расширения языка для SQL. Это позволяет базе данных обрабатывать данные непосредственно в форме XML. Контент можно публиковать в Интернете, с течением времени его легче менять, и его можно настраивать для конкретного пользователя или устройства, что делает его хорошим инструментом для арсенала электронного бизнеса. Данные могут храниться в формате XML, и ASE может получить к ним доступ напрямую для быстрой публикации.
  • SQLJ (включая хранимые процедуры Java) — в последнее время Java была на переднем крае в предоставлении доступа к серверным приложениям. Sybase извлекла выгоду из этого и работает над стандартизацией технологии Java-Relational Database. Это привело к созданию SQLJ, который сочетает мощные и быстрые возможности разработки Java с возможностями управления данными сервера управления базами данных, такого как Sybase ASE.
  • Поддержка внешних файловых систем. Большинство публикуемого контента не является реляционным и хранится вне самой базы данных. Большинство больших файлов, таких как изображения, хранятся непосредственно в файловой системе операционной системы. Это приводит к проблемам в контроле и управлении файлами, с чем согласится любой, кто заглянет в типичный каталог Windows. Sybase ASE 12.5 позволяет разработчикам контролировать эти данные и сохранять их в файловой системе. Они могут создавать прокси-таблицы, которые отображают расположение файлов и другую информацию, что позволяет им манипулировать этими файлами с помощью обычных команд SQL для доступа, создания, удаления и записи файлов.

В целом, Sybase — хорошая система с множеством функций. Он будет поддерживать большую базу пользователей и имеет технологии, позволяющие вашему сайту расти настолько, насколько вам это необходимо. Для получения дополнительной информации о Sybase посетите их веб-сайт и ознакомьтесь с различными примерами из практики или загрузите документацию в формате PDF. Только предупредите — документация только по Transact SQL напечатана более чем на 1500 страницах.

Интернет сайт
http://www.sybase.com/

Microsoft SQL Server

SQL Server является краеугольным камнем корпоративной стратегии данных Microsoft. Технологии из него используются во всем, от архитектуры Exchange до .NET. Это предпочтительная база данных для многих компаний, которые используют другое программное обеспечение Microsoft, потому что все они разработаны, чтобы соответствовать друг другу.

Вы чаще всего найдете SQL Server, предлагаемый теми хостинговыми компаниями, которые используют операционные системы Windows для своих серверов. SQL Server недешев, но он предоставит вам масштабируемую архитектуру для любого типа данных. Microsoft SQL Server начал свою жизнь как лицензионная копия Sybase ASE, портированной на Windows NT, и обе системы все еще очень похожи, поскольку только недавно Microsoft начала вносить большие изменения в базовый движок.

SQL Server разработан для масштабирования. Вы можете совместно использовать одну базу данных на нескольких машинах и поддерживать целостность данных с помощью репликации. Каждая машина может поддерживать до 32 процессоров и 64 гигабайта оперативной памяти для максимальной вычислительной мощности. Как и Sybase, SQL Server поддерживает веб-интерфейс, обеспечивает прямой доступ к данным через запросы из HTTP и может выводить данные в формате XML.

T-SQL

SQL Server также поставляется с собственным процедурным языком, который благодаря своим корням Sybase основан на Transact SQL. Microsoft просто сократила название до T-SQL. T-SQL позволяет разработчику быстро создавать приложения уровня предприятия с полными возможностями Интернета. Клиентское приложение SQL Server содержит полный отладчик, облегчающий процесс разработки. С помощью отладчика вы можете контролировать и контролировать ваше приложение во время его работы, чтобы создавать наилучшие оптимизации в ваших запросах и другом коде.

Некоторые из сильных сторон SQL Server

Полнотекстовый поиск — возможности полнотекстового поиска в SQL Server 2000 позволяют быстро выполнять поиск не только по символьным полям в таблицах, но и по текстовым файлам, хранящимся на жестком диске, форматированным файлам, таким как документы Word и т. Д.

Интеграция .NET — это сервер .NET, поэтому он может быть интегрирован с любым другим работоспособным сервером и будет обмениваться информацией напрямую. Это позволяет быстро разрабатывать онлайн-приложения, от сообществ до интернет-магазинов.

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

Если вы используете Windows Server для своего веб-сайта или вам нужен доступ к службам Windows с помощью ActiveX, то SQL Server — ваш очевидный выбор. SQL Server обеспечивает надежную масштабируемую платформу для использования в NT и Windows 2000. Он также предлагается большинством хостинговых компаний Windows NT либо бесплатно, либо за небольшую ежемесячную плату, что дает вам возможность использовать высокопроизводительный сервер баз данных за небольшую или бесплатно.

Интернет сайт
http://www.microsoft.com/sql

Oracle 9i

Oracle был первым коммерческим сервером реляционных баз данных, проданным на открытом рынке. Сегодня он по-прежнему считается сервером базы данных номер один по мощности и возможностям. Oracle используется большинством компаний Fotune 500 в качестве предпочтительного метода хранения данных. Этот престиж и мощь имеют свою цену: Oracle также является самым дорогим из доступных решений. Самая новая версия программного обеспечения базы данных — 9i (i обозначает Интернет). Oracle поставляет полностью стандартный интернет-веб-сервер со своими пакетами базы данных. Этот сервер может обращаться к данным напрямую из базы данных, как если бы это была обычная HTML-страница.

Система Oracle Database может обращаться к файлам размером до 1 терабайта и может поддерживать десятки тысяч пользователей. Это легкий путь для разработки, с его полностью функциональным языком PL / SQL, мощной поддержкой хранимых процедур и триггеров, контролем безопасности и многими другими функциями. Однако это также идет по цене — большой. Oracle — самый дорогой и ресурсоемкий сервер баз данных из перечисленных здесь. Установка и обслуживание базы данных Oracle не для слабонервных или неопытных. Тем не менее, Oracle предоставит возможность поддерживать крупнейшее глобальное предприятие и обрабатывать десятки тысяч пользователей и транзакций со всего мира.

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

Oracle поставляется для каждой операционной системы от Windows NT до крупнейших мэйнфреймов, включая Linux и Unix. Их установочный пакет и многие утилиты, поставляемые с Oracle Database, написаны на Java, что позволяет им использовать один и тот же код при каждой установке и упрощает поддержку программного обеспечения.

Помимо функций кэширования памяти, Oracle поддерживает полную интеграцию с PERL, PHP, C ++, Java, TCL / TK и многими другими языками. Он также имеет мощную утилиту секвенирования для генерации
уникальные идентификаторы, и его внутренний язык программирования не имеет себе равных.

PL / SQL

Язык программирования в хранимых процедурах и триггерах Oracle просто называется PL / SQL (процедурный язык / SQL). Он обладает всеми возможностями любого языка программирования 3-го поколения, например C ++, и позволяет разработчику выполнять сложные запросы и процедуры, включая запросы Dynamic SQL, основанные на результатах предыдущих запросов.

Интересные особенности

У Oracle много функций, однако три, которые мне интересны, — это службы шлюзов, протоколы аварийного переключения и журналы транзакций.

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

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

Журналы транзакций. Они предназначены для хранения ваших данных и содержат моментальные снимки каждой транзакции. Поддерживая эти журналы между резервными копиями, вы можете восстановить все ваши данные в случае повреждения данных. Эти журналы применяются последовательно и восстанавливают все, что произошло между резервным копированием и повреждением, поэтому они обеспечивают хорошую отказоустойчивость ваших данных.

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

Интернет сайт
http://www.oracle.com/

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

Каждая из систем, описанных здесь, представляет жизнеспособные пути обновления от MySQL. Если вам нужно использовать решение с открытым исходным кодом, тогда у вас есть выбор MySQL или Postgre SQL — и Postgre позволит вашему бизнесу пойти дальше. Если вы можете позволить себе коммерческое решение, я бы порекомендовал Sybase и Oracle для систем на базе Unix / Linux. Если вы работаете на сервере Windows NT / 2000 / XP, используйте SQL Server 2000, поскольку вы получите наибольшее преимущество от этого решения.

База данных Ресурсы

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

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

Вот три онлайн-журнала, которые позволят вам быть в курсе последних событий на рынке РСУБД и помогут вам принимать обоснованные решения:

Другие загрузки включают в себя: