Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Общая информация /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Что представляет собой MySQL? - Программирование от RIN.RU
Что представляет собой MySQL?



История MySQL


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


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


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


Ниже приведено описание важных характеристик программного обеспечения MySQL. Смю раздел Кратко о MySQL 4.x.


Внутренние характеристики и переносимость


  • Написан на C и C++. Протестирован на множестве различных компиляторов.

  • Работает на различных платформах. См. раздел Операционные системы, поддерживаемые MySQL.

  • Для обеспечения переносимости используется GNU Automake, Autoconf и Libtool.

  • API для C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl. См. раздел Интерфейсы для 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. См. раздел Типы данных столбцов.

  • С записями фиксированной и переменной длины.

  • Все столбцы имеют значения по умолчанию. С помощью 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 является корректным именем столбца. Для вызова функции существует только одно ограничение: между именем функции и следующей за ним открывающей скобкой '(" не должно быть пробелов. См. раздел "Придирчив" ли 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. См. раздел Поддержка ODBC в MySQL.


Локализация


  • Сервер может обеспечивать сообщения об ошибках для клиентов на различных языках. См. раздел Сообщения об ошибках на языках, отличных от английского.

  • Полная поддержка нескольких различных кодировок, включая ISO-8859-1 (Latin1), немецкий, big5, ujis и многие другие. Например, скандинавские символы разрешены в именах таблиц и столбцов.

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

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


Клиенты и инструментарий


  • Включает myisamchk, очень быструю утилиту для проверки, оптимизации и восстановления таблиц. Все функциональные возможности myisamchk также доступны через SQL-интерфейс. Cм. раздел Администрирование баз данных.

  • Все MySQL-программы можно запускать с опциями --help или -? для получения помощи.




<<<  НазадВперед  >>>
 1  2  3  4 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Об этом руководстве

Соглашения, используемые в данном руководстве

О русском переводе руководства

Что представляет собой компания MySQL AB?

Лицензии и поддержка MySQL

Кратко о MySQL 4.x

Источники информации по MySQL

Насколько MySQL соответствует стандартам?

MySQL и будущее (что предстоит сделать)

Сравнение MySQL с другими СУБД

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь