Репликация - это механизм распределения данных, позволяющий размещать копии таблиц и баз данных на удаленных узлах, благодаря чему облегчается доступ к ним пользователей.
База технологических данных на выпускаемые изделия является типичным примером использования механизма репликации - например, национальная или интернациональная компании могут иметь общую базу технологических данных, которая обновляется централизованно, но используется локально во всех офисах компании. Вместо того чтобы приложения запрашивали базу данных в удаленном режиме, выгоднее, чтобы копия базы данных рассылалась всем, минимизируя тем самым передачу данных по сети.
До выхода версии 3.23.15, MySQL не имел возможности репликации, начиная с этой версии и до настоящего времени, MySQL поддерживает только одностороннюю репликацию, когда одна база данных является при этом главной, а другая и более базы данных являются подчиненными.
Механизм репликации опирается в своей работе на регистрационные журналы MySQL, по которым отслеживаются все изменения, произошедшие с базой данных. Главная база данных пересылает этот журнал подчиненной, которая на основании этого журнала производит соответствующие изменения в своих данных. При этом в подчиненных базах данных не должно производиться никаких изменений вне контекста репликации, поэтому основное внимание должно быть уделено тому, чтобы таких изменений не производилось, т.к. при таком положении вещей нельзя гарантировать синхронизацию баз данных, а последовательные откаты по информации из журналов в этом случае ничего не дают.
Прикладные программные интерфейсы
MySQL предоставляет в распоряжение разработчиков приложений клиентскую библиотеку, написанную на языке программирования C и набор программных интерфейсов (API-интерфейсы), обеспечивающих понятный набор правил, по которым можно осуществлять соединение с сервером MySQL и передавать ему команды. Использование API-интерфейса позволяет сделать клиентские программы независимыми от каких бы то ни было изменений в MySQL.
Имеется много API-интерфейсов по одному или более для всех основных языков программирования. Большинство из них используют клиентскую библиотеку C, за исключением API-интерфейса для языка Java, который полностью написан на языке Java. Есть API-интерфейсы для Perl, PHP, C и C++, Java, Visual Basic, Python, Ruby и .NET. 
Дополнительное программное обеспечение
Список программного обеспечения, работающего совместно с MySQL, продолжает расти. Ниже представлен перечень самого удачного с этой точки зрения программного обеспечения:
■ MySQL СС, который можно скачать с http://www.mysql.com/products/ mysqlcc/index.html, является отличным средством для создания запросов и управления базой данных для MySQL. В настоящее время имеются версии для Windows, Linux и UNIX, а также версия для Mac OS X должна быть готова ко времени выхода в свет этой книги.
■ DBTools Manager Professional, который можно скачать с http://www.dbtools. com.br, является графическим клиентом, предназначенным для управления базами данных СУБД MySQL, их таблицами и индексами, импортирования данных из других СУБД. Он представляет несложный интерфейс для создания запросов и отчетов.
■ Для управления СУБД MySQL через Internet можно предложить такую программу, как phpMyAdmin, которую можно скачать с Web-узла http://www.
phpmyadmin.org.

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