Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Портирование кода из mSQL в MySQL

Перенос прикладных программ mSQL в MySQL относительно прост.

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

Замечания:

  • MySQL использует структуру данных MYSQL как тип для соединения с базой данных (mSQL использует int).
  • mysql_connect получает указатель на структуру MYSQL как параметр. Вы можете определять его глобально или использовать malloc, чтобы его получить.
  • mysql_connect получает 2 дополнительных параметра (логин и пароль пользователя). По умолчанию, они установлены в NULL.
  • mysql_error получает параметр типа MYSQL.

MySQL поставляется с портированными версиями тестовых программ mSQL insert_test.c и select_test.c. Хорошая идея сравнить их с их mSQL эквивалентами. Это должно дать Вам хорошее начало для понимания, что Вы будете должны сделать для портирования mSQL программы в MySQL. Это также даст Вам некоторые мысли о том, что Вы должны делать, чтобы написать свою MySQL программу.

Чем отличается реализация протокола клиент/сервер в MySQL от своего аналога в mSQL?

Имеются значительные различия. Среди них:

  • Буфер сообщений может содержать много строк результатов.
  • На стороне сервера размер буфера сообщений динамически подстраивается по мере необходимости для больших запросов пользователя.
  • Все пакеты пронумерованы, для синхронизации пакетов.
  • Все столбцы представлены в ASCII, длина столбцов и длины строк представлены с помощью двоичного кодирования (1, 2 или 3 байта).
  • MySQL может читать результаты без буферизации.
  • Если одна запись/чтение занимает свыше 30 секунд, сервер закрывает соединение.
  • Если соединение неактивно в течение 8 часов, сервер закрывает соединение.

Отличия между msql 2.0b7 и MySQL

  • CREATE TABLE:

    MySQL: имеет опции для поля: UNSIGNED, ZEROFILL, имеет значение по умолчанию для не пустых полей.

    mSQL: опций не имеет.

  • Создание индексов:

    MySQL:Все индексы должны быть заданы в CREATE TABLE.

    mSQL:Индексы должны быть созданы отдельным оператором CREATE INDEX. (msql использует новый файл ключа для каждого индекса?) Индексы могут быть удалены оператором DROP INDEX

  • Для получения уникального идентификатора при вставке:

    MySQL: Используйте 'auto_increment' как определение типа столбца. Используемый индекс может быть получен после обновления функцией API mysql_insert_id().

    mSQL: Создает структуру SEQUENCE для таблицы и использует функцию __seq для получения уникального индекса.

  • Групповые функции:

    MySQL: count(), avg(), min(), max() и sum(). min() и max() могут принимать строковые аргументы. count(*) оптимизирована для возвращения значения в случае одного столбца.

    mSQL: Нет.

  • Независимый от регистра поиск:

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

    mSQL: Использует CLIKE.

  • Поиск с регулярными выражениями.

    MySQL: Использует REGEXP or RLIKE

    mSQL: Использует RLIKE.

  • Какие различия в операторе WHERE:

    MySQL имеет скобки, Скоро он будет иметь полную функциональную поддержку оператора WHERE (это планируется для версии 3.21.X).

  • Имена столбцов:

    MySQL: Если имя столбца уникально, Вы не должны использовать полное имя.

    mSQL: При использовании более чем одной таблицы в SELECT, Вы должны использовать полное имя таблицы.

  • Псевдонимы:

    MySQL: Псевдонимы для таблиц и столбцов.

    mSQL: Псевдонимы для таблиц.

  • Insert/update с вычислениями:

    MySQL: Полная поддержка вычислений. В insert можно использовать значения предшествующих полей.

    mSQL: Только константы в insert и update.

  • Какие формулы могут использоваться в инструкции select:

    MySQL: См. руководство.

    mSQL: Никакие.

  • HAVING:

    MySQL: Поддерживается, но может использовать вычисление только на выбранных полях. Для select на расчетном значении, нужно использовать псевдоним столбца.

    ПРИМЕР:

       SELECT COUNT(*) AS id_count, id FROM groups GROUP BY id
       HAVING id_count > 10
    

    mSQL: Не поддерживается вовсе.

  • Импорт и экспорт данных:

    MySQL: MySQL имеет соответствующие функциональные возможности, включая сервис для импорта данных посредством оператора LOAD DATA INFILE, что весьма ускоряет загрузку данных.

    mSQL: Внешние программы.

    Назад | Содержание | Вперед

     

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...