Разработку и сопровождение MySQL

Автор работы: Пользователь скрыл имя, 29 Октября 2012 в 16:22, доклад

Краткое описание

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

Содержимое работы - 1 файл

1.1.doc

— 231.50 Кб (Скачать файл)

1.3.1. Список терминов, принятых в русском переводе

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

Для ясности понимания мы включаем в документацию список принятых в этом переводе терминов.

Термин

Значение

account

аккаунт, учетная запись

ACL

списки контроля доступа

banner

баннер

benchmark page

страничка тестов производительности

Berkeley-style copyright

лицензия наподобие Berkeley

binary release, binary distribution

бинарная поставка, двоичная поставка

cache

кэш

case sensitive

чувствительный к регистру, регистро-зависимый

change history

история изменений

charset

набор символов, кодировка

client/server

клиент-серверный

command-line tool

утилита командной строки

commit

принять; commit transaction - принять транзакцию

communication protocol

коммуникационный протокол

contact form

форма. fill in the contact form - заполните форму

data dir

каталог с данными

datadir, data dir

каталог datadir, каталог данных

date type

тип даты

DBA

администратор (физическое лицо)

dbms

см. rdbms

ddos

distributed dos - распределенная атака  создания отказа в обслуживании

denial of service

отказ в обслуживании

deployment

распространение

distribution

поставка, дистрибутив

distributor

производитель

dos

см. denial of service

embedded

встраиваемый. Не "встроенный"

environment variables

переменные окружения

escape chars

символы экранирования

escaped chars

экранированные символы

extended regular expression

расширенное регулярное выражение

fail-safe

отказобезопасный

feature

возможность, особенность

firewall

брандмауэр

flush

сброс, очистка, перегрузка

foreign key constraint

ограничения внешних ключей

full precision

полная точность

full-text

полнотекстовый

grant tables

таблицы привилегий

grants

привилегии

group

группа, группировка

group functions

групповые функции, операции группировки  данных, операции над групповыми данными

host

удаленный компьютер

inserting data

добавление, вставка данных

join

связь

join optimizer

оптимизатор связей

key cache

кэш ключей

large-scale

широкомасштабный

license

лицензция

link

линкование (в контексте линкования компиляции программ)

localhost, local host

локальный хост, локальный компьютер

locking

блокировка

log

журнал

log position

точка положения в журнале репликации

login

см. account

login shell

первая оболочка входа (login shell)

master

(репликация) головной сервер

miscellaneous

разнообразный

multi-byte

мультибайтный

multi-layered

многоуровневый

multithread

многопоточный

mysql server

MySQL или сервер

mysql user

пользователь MySQL

non-updating queries

запросы, не изменяющие информацию

null

null

open source

система с открытым кодом (open source)

optional

опциональный

parser

синтаксический анализатор

patch

патч

port listening

слушание порта, слушать порт, ожидать  соединение на порту

privacy

конфиденциальность

privilege

привилегии

qualifier

определитель

qualify

определять

rdbms

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

reference manual

справочник, руководство

regular client

обычный клиент

regular expression

регулярное выражение; extended - расширенное  р.в.

released under gpl

выпущено под лицензией GPL

replica (server)

сервер с копиями

robustness

надежность, отказоустойчивость

rollback

откат

rotation

ротация

row-level locking

строчная блокировка

scope

контекст

script

сценарий, скрипт

security

безопасность

security issues

вопросы безопасности

SET

множество

silent

молчаливо

slave

(репликация) подчиненный сервер

snapshop

образ, снимок

socket

сокет

ssh port-forwarding

пересылка по SSH (SSH port-forwarding)

SSL connections

SSL-соединения

sticky

прилипчив

superuser

суперпользователь

symbol table

см. charset

symbol value

строкое значение

symlink

символическая ссылка

table handler

обработчик таблиц

thread

поток

time stamp

временная метка

timestamp

тип данных временной метки

TODO-list

список задач к выполнению

track

последовательность, протокол

transactional

транзакционный

trick

трюк, хитрость

unix socket, unix domain socket

unix-сокет

up-to-date

своевременный

utilities

инструментальные программы

vendor

поставщик

verbose

расширенный режим вывода сообщений

voting algorithm

алгоритм голосования

warning

предупреждение

wildcard

шаблон, шаблонные символы

wrapper

оболочка


 

1.4. Что представляет  собой MySQL?

Разработку и сопровождение MySQL, самой популярной SQL-базы данных с  открытым кодом, осуществляет компания MySQL AB. MySQL AB - коммерческая компания, основанная разработчиками MySQL, строящая свой бизнес, предоставляя различные сервисы для СУБД MySQL. SeeРаздел 1.5, «Что представляет собой компания MySQL AB?».

На веб-сайте MySQL (http://www.mysql.com/) представлена самая свежая информация о программном  обеспечении MySQL и о компании MySQL AB.

  • MySQL - это система управления базами данных.

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

  • MySQL - это система управления реляционными базами данных.

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

  • Программное обеспечение MySQL - это ПО с открытым кодом.

ПО с открытым кодом означает, что применять и модифицировать его может любой желающий. Такое ПО можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями. Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License), http://www.gnu.org/licenses/, в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях. Если работа в рамках GPL вас не устраивает или планируется встраивание MySQL-кода в коммерческое приложение, есть возможность купить коммерческую лицензированную версию у компании MySQL AB. See Раздел 1.6.3, «Лицензии на ПО MySQL».

  • В каких случаях следует отдавать предпочтение СУБД MySQL?

MySQL является очень быстрым, надежным  и легким в использовании. Если  вам требуются именно эти качества, попробуйте поработать с данным сервером. MySQL обладает также рядом удобных возможностей, разработанных в тесном контакте с пользователями. Сравнительные характеристики MySQL и других средств управления базами данных приведены на нашей странице тестов производительности (see Раздел 5.1.4, «Набор тестов MySQL (The MySQL Benchmark Suite)»).

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

  • Технические возможности СУБД MySQL

Более детальную информацию по техническим  возможностям MySQL можно получить в  разделе Глава 6, Справочник по языку MySQL. ПО MySQLявляется системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API).

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

  • Доступно также большое количество программного обеспечения MySQL,

разработанного сторонними разработчиками.

Вполне возможно, что СУБД MySQL уже поддерживается вашим любимым приложением или языком.

MySQL правильно произносится как  ''Май Эс Кью Эль'' (а не ''майсиквел''), хотя никто не запрещает вам произносить эту аббревиатуру как ``майсиквел'' или еще каким-либо образом.

1.4.1. История MySQL

В один прекрасный день мы решили применить mSQL для доступа к нашим таблицам, для которых использовались собственные быстрые (ISAM) подпрограммы низкого уровня. Однако после тестирования мы пришли к заключению, что для наших целей скорость и гибкость mSQL недостаточны. В результате для базы данных был разработан новый SQL-интерфейс, но почти с тем же API-интерфейсом, что и mSQL. Этот API мы выбрали, чтобы упростить перенос на код сторонних разработчиков.

Происхождение имени MySQL не совсем ясно. Уже около 10 лет наша основная директория и большое количество библиотек  и инструментария имеют префикс my. Более того, дочь Монти (она несколькими годами моложе) тоже получила имя My! Что из этих двух факторов повлияло на имя - до сих пор остается загадкой, даже для разработчиков.

1.4.2. Основные возможности  MySQL

Ниже приведено описание важных характеристик программного обеспечения MySQL. See Раздел 1.7, «Кратко о MySQL 4.x».

  • Внутренние характеристики и переносимость
    • Написан на C и C++. Протестирован на множестве различных компиляторов.
    • Работает на различных платформах. See Раздел 2.2.3, «Операционные системы, поддерживаемые MySQL».
    • Для обеспечения переносимости используется GNU Automake, Autoconf и Libtool.
    • API для C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl. See Глава 8, Интерфейсы для MySQL.
    • Полностью многопоточный с использованием потоков ядра. Это означает, что, если такая возможность обеспечивается, можно легко организовать работу с несколькими процессорами.
    • Очень быстрые дисковые таблицы на основе В-деревьев со сжатием индексов.
    • Очень быстрая базирующаяся на потоках система распределения памяти.
    • Очень быстрые соединения, использующие оптимизированный метод однопроходного мультисоединения (one-sweep multi-join).
    • Хеш-таблицы в памяти, используемые как временные таблицы.
    • SQL-функции реализованы при помощи хорошо оптимизированной библиотеки классов, поэтому они выполняются настолько быстро, насколько это возможно. Обычно после инициализации запроса распределения памяти не происходит вообще.
    • MySQL- код протестирован с использованием Purify (коммерческий детектор утечки памяти), а также Valgrind, одного из GPL-инструментов (http://developer.kde.org/~sewardj/
  • Типы столбцов
    • Большое количество: целочисленные со знаком/беззнаковые, длиной в 1, 2, 3, 4 и 8 байтов, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB,DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET и ENUM. See Раздел 6.2, «Типы данных столбцов».
    • С записями фиксированной и переменной длины. 
    • Все столбцы имеют значения по умолчанию. С помощью INSERT можно вставить подмножество столбцов таблицы; столбцы, для которых явно не заданы значения, устанавливаются в значения по умолчанию.
  • Команды и функции
    • Полная поддержка операторов и функций в SELECT- и WHERE- частях запросов. Например:
    • mysql> SELECT CONCAT(first_name, " ", last_name)
    •     -> FROM tbl_name
    •     -> WHERE income/dependents > 10000 AND age > 30;
    • Полная поддержка для операторов SQL GROUP BY и ORDER BY с выражениями SQL. Поддержка групповых функций (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() и MIN()).
    • Поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN с синтаксисом ANSI SQL и ODBC.
    • Разрешены псевдонимы для таблиц и столбцов в соответствии со стандартом SQL92.
    • DELETE, INSERT, REPLACE, and UPDATE возвращают число строк, которые были изменены. Вместо этого можно задать возвращение совпавших строк. Для этого следует установить флаг при соединении с сервером.
    • Команду SHOW, которая является специфической для MySQL, можно использовать для получения информации о базах данных, таблицах и индексах. Чтобы выяснить, как оптимизатор выполняет запрос, можно применять команду EXPLAIN.
    • Имена функций не конфликтуют с именами таблиц и столбцов. Например, ABS является корректным именем столбца. Для вызова функции существует только одно ограничение: между именем функции и следующей за ним открывающей скобкой ‘(’ не должно быть пробелов. SeeРаздел 6.1.7, «``Придирчив'' ли MySQL к зарезервированным словам?».
    • В одном и том же запросе могут указываться таблицы из различных баз данных (с версии 3.22).
  • Безопасность
    • Система, основанная на привилегиях и паролях, за счет чего обеспечивается гибкость и безопасность, и с возможностью верификации с удаленного компьютера. Пароли защищены, т.к. они при передаче по сети при соединении с сервером шифруются.
  • Масштабируемость и ограничения
    • Управляет очень большими базами данных. Компания MySQL AB. использует MySQL для работы с несколькими базами данных, которые содержат 50 миллионов записей, кроме того, нам известны пользователи, использующие MySQL для работы с 60000 таблицами, включающими около 5000000000 строк.
    • Для каждой таблицы разрешается иметь до 32 индексов. Каждый индекс может содержать от 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса 500 бит (это значение может быть изменено при компиляции MySQL). Для индекса может использоваться префикс поля CHAR или VARCHAR.
  • Установка соединений
    • Клиенты могут соединяться с MySQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT).
    • Поддержка ODBC (Open-DataBase-Connectivity) для Win32 (с исходным кодом). Все функции ODBC 2.5 и многие другие. Например, для соединения с MySQL можно использовать MS Access. See Раздел 8.3, «Поддержка ODBC в MySQL».
  • Локализация
    • Сервер может обеспечивать сообщения об ошибках для клиентов на различных языках. See Раздел 4.6.2, «Сообщения об ошибках на языках, отличных от английского».
    • Полная поддержка нескольких различных кодировок, включая ISO-8859-1 (Latin1), немецкий, big5, ujis и многие другие. Например, скандинавские символы разрешены в именах таблиц и столбцов.
    • Для хранения всех данных используется выбранный набор символов. Все сравнения для столбцов с нормальными строками проводятся с учетом регистра символов.
    • Сортировка производится согласно выбранному алфавиту (по умолчанию используется шведский). Эту установку можно изменить при запуске сервера MySQL. Чтобы ознакомиться с примером очень грамотной сортировки, можно обратиться к коду сортировки для чешского языка. MySQL поддерживает много различных кодировок, которые можно задавать во время компиляции и в процессе работы.
  • Клиенты и инструментарий
    • Включает myisamchk, очень быструю утилиту для проверки, оптимизации и восстановления таблиц. Все функциональные возможностиmyisamchk также доступны через SQL-интерфейс. See Глава 4, Администрирование баз данных.
    • Все MySQL-программы можно запускать с опциями --help или -? для получения помощи.

1.4.3. Насколько стабильным  является MySQL?

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

Самые первые версии кода были созданы  в начале 80-х. Это был устойчивый код с форматом таблиц ISAM, обеспечивающим обратную совместимость с предыдущими версиями. Во времена компании TcX, предшественника MySQL AB, с середины 1986 года код MySQL работал в проектах без каких-либо проблем. Но когда сервер MySQL был выпущен для широкого использования, оказалось, что существует несколько фрагментов ``непротестированного кода''. Эти фрагменты были быстро обнаружены новыми пользователями, которые составляли запросы в несколько ином виде, чем мы.

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

Каждый релиз MySQL был рабочим, проблемы возникали только при использовании кода из ``серых зон''. Естественно, что новые пользователи не знают о том, где находятся такие ``серые зоны''; в данном разделе сделана попытка описать те из них, которые известны на данный момент. Большая часть описания относится к версии 3.23 MySQL-сервера. В самой последней версии все известные ошибки устранены, за исключением тех, которые перечислены в разделе ошибок, а также конструктивных дефектов. See Раздел 1.9.5, «Известные ошибки и недостатки проектирования в MySQL».

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

  • Репликация - Gamma

Большие серверные кластеры, в которых  применяется репликация, находятся  в промышленной эксплуатации и показывают хорошие результаты. Работа над средствами репликации в MySQL 4.x продолжается.

  • InnoDB-таблицы - стабильно (в 3.23 с 3.23.49)

Обработчик транзакционных InnoDB-таблиц объявлен в настоящее время стабильными в дереве MySQL 3.23, начиная с версии 3.23.49. InnoDBиспользуется в больших промышленных системах с большой нагрузкой.

Информация о работе Разработку и сопровождение MySQL