Практический пример переноса Web-приложения с MySQL на SQL Express при помощи Sql Server Migration Assistant for MySQL презентация

Содержание

MySQL: факты

Слайд 1
Практический пример переноса Web-приложения с MySQL на SQL Express при помощи

Sql Server Migration Assistant for MySQL

Неволин Александр
Nevlabs
Руководитель, к.т.н.


Слайд 2
MySQL: факты


Слайд 3
Распространяемые редакции MySQL


Слайд 4
Ограничения Microsoft SQL Server Express Edition
1 процессор

Максимальное использование оперативной памяти –

1 Гб

Максимальный объем базы данных – 4 Гб


Слайд 5
История версий MySQL


Слайд 6
Версия 3.23
Независимые механизмы хранения таблиц (MyIsam, InnoDb)
Возможность создания таблиц в памяти

(Heap-таблицы)
Merge-таблицы
Репликация
Полнотекстовый поиск

Январь 2001 года


Слайд 7
Версия 4.0
Март 2003 года
Движок InnoDB включен в стандартный пакет
Усовершенствование

Merge-таблиц
Кеширование запросов
Поддержка UNION-запросов
Значительные улучшения в полнотекстовом поиске
SSL-соединения

Слайд 8
Версия 4.1
Октябрь 2004 года
Вложенные запросы и производные таблицы
Поддержка Unicode

(UTF-8)
Улучшенные механизмы кодировок, сортировок, полнотекстового поиска
Более гибкий и быстрый протокол клиент-сервер

Слайд 9
Версия 5.0
Октябрь 2005 года
Хранимые процедуры и функции
Курсоры
Триггеры
Представления


Слайд 10
Версия 5.1
Ноябрь 2008 года
Разбиение файлов на части
Построчная репликация
Встроенный

планировщик
Возможность хранения логов в таблицах
Функции для работы с XML
Load Emulator
Berkeley DB не поддерживается

Слайд 11
Типы таблиц MySQL


Слайд 12
Таблицы MyISAM
Тип, используемый по умолчанию
Могут быть статическими, динамическими и

сжатыми
Обеспечивают максимальное быстродействие
Не поддерживают транзакции и ссылочную целостность
Максимальный размер ограничен требованиями файловой системы
Возможность полнотекстового поиска

Слайд 13
Таблицы InnoDB
Блокировка на уровне строк
Поддержка внешних ключей
Транзакции
Собственный

механизм хранения данных
Зачастую запрещен к использованию в рамках виртуального хостинга

Слайд 14
Таблицы Merge
Merge-таблицы представляют собой логическое объединение нескольких таблиц (фактически –

аналог UNION)
Ранее использовались для обхода ограничения на максимальный размер файла в операционных системах

CREATE TABLE myTable (
…..
) type=merge union=(table1, table2, table3)
insert_method=last;

Слайд 15
Таблицы Merge: пример

Last_Records
Последние 1000 записей
Other_Records
Все остальные записи
All_Records

На практике часто бывают нужны

только последние N записей.
Таблица Last_Records будет работать быстрее благодаря меньшему размеру.

В остальных (более редких) случаях – запрос для merge-таблицы.

Слайд 16
Таблицы Heap
Наиболее быстрые таблицы
Приходится следить за размером таблицы
При

сбое питания данные теряются
Не поддерживаются AUTO_INCREMENT, TEXT и BLOB-данные

Слайд 17
Сжатие данных
В MySQL сжатые данные доступны только для чтения. При

записи происходит распаковка таблицы, затем запись, затем упаковка

В MSSQL 2008 – возможно прозрачное сжатие данных

Слайд 18
Программный доступ


Слайд 19
Синтаксические отличия
Значительные отличия в манипулировании структурами таблиц (тип таблиц у

MySQL, AUTO_INCREMENT и т.п.)

Присутствуют отличия в функциях (ISNULL, CONCAT и т.п.)

SELECT, INSERT, UPDATE, DELETE в целом схожи (но есть нюансы – например, SQL Server не поддерживает JOIN USING и т.д.)

Приятность MySQL – оператор LIMIT

В MySQL: SELECT * FROM user, в SQL Server: SELECT * FROM [user]

Неприятный итог: если приложение «захардкожено» под MySQL, то перенос потребует немалых сил


Слайд 20
Перенос данных с MySQL на SQL Server
В каких случаях на практике

требовался переезд:

Всплывший факт о том, что MySQL вовсе не бесплатна;
Не устраивают даже стандартные фичи MySQL – например, нужен одновременно полнотекстовый поиск и внешние ключи;
Нужен дополнительный функционал, имеющийся в SQL Server.

Что нужно для переезда:

Правка SQL-запросов, зашитых в приложение;
Перенос структуры базы данных и самих данных. Раньше – вручную, теперь – с помощью Microsoft SQL Server Migration Assistant for MySQL.


Слайд 21
Демонстрейшн


Слайд 22
Сравнение производительности
База данных:
AdventureWorks для SQL Server 2005
Для корректности эксперимента

перенесена вручную в MySQL (InnoDB), затем оттуда в SQL Server Express 2008 с помощью SSMA

Условия:

Тестируем на запросах различной сложности;
Тестируем с разным количеством параллельных потоков;
Тестируем с возможностью кеширования запросов (10 и 20 однотипных запросов)

Запросы:

Полные SELECT маленьких, средних и больших таблиц
SELECT с простыми условиями
SELECT со сложными условиями и JOIN


Слайд 23
Сравнение производительности
Полный SELECT маленьких таблиц (до 3.000 строк)


Слайд 24
Сравнение производительности
Полный SELECT средних таблиц (до 30.000 строк)


Слайд 25
Сравнение производительности
Полный SELECT больших таблиц (порядка 100.000 строк)


Слайд 26
Сравнение производительности
SELECT с несложными условиями, без кеширования


Слайд 27
Сравнение производительности
SELECT с несложными условиями, кеширование 10


Слайд 28
Сравнение производительности
SELECT с несложными условиями, кеширование 20


Слайд 29
Сравнение производительности
SELECT со сложными условиями + JOIN, без кеширования


Слайд 30
Сравнение производительности
SELECT со сложными условиями + JOIN, кеширование 10


Слайд 31
Сравнение производительности
SELECT со сложными условиями + JOIN, кеширование 20


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

http://www.nevlabs.ru/dbtest


Слайд 33
Нам очень важна Ваша оценка!
Заполните анонимную анкету
Если Вы не ходили

на какие то доклады, ставить ничего не надо.


Слайд 34
Спасибо за внимание!
Неволин Александр
nao@nevlabs.ru
ICQ: 174-387-856
+7 (926) 281-89-85


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика