Я работаю с MSSQL и MySQL и часто приходится сравнивать изменения в БД.
* Делаю так: скриптую БД с разбивкой всех объектов на индивидуальные файлы, после чего сравниваю, используя diff tool с возможностью сравнения директорий.
Очень просто и удобно.
Сама папка находится под DVCS Mercurial/HG т.е. можно смотреть историю изменений.
* Знаю про другой способ (работает в т.ч. между серверами разных версий т.к., например, скрипты MSSQL 2008 и 2000 довольно сильно отличаются).
Для MySQL: devart.com/ru/dbforge/mysql/studio
Для MSSQL: devart.com/ru/dbforge/sql/datacompare
Сам активно не пользовал, но один знакомый активно использует и очень хвалит.
* Есть что-то ещё?...
Показаны сообщения с ярлыком sql. Показать все сообщения
Показаны сообщения с ярлыком sql. Показать все сообщения
2011-07-04
2011-02-11
MySQL links and tips
Links
1. Сам MySQL и документацию (жаль в chm перестали делать) брать здесь:
http://dev.mysql.com/downloads/mysql/
2. Java JDBC Driver:
http://dev.mysql.com/downloads/connector/j/
3. Простая, легкая консоль (я пользуюсь ею для повседневных нужд - это free OS урезная редакция):
http://code.google.com/p/sqlyog/
4. Очень навороченная, крутейшая консоль+enterprise manager+отчеты
(можно в некоторых случаях отчеты делать не в web UI, а используя эту студию):
http://www.devart.com/ru/dbforge/mysql/studio/
Вот список возможностей:
http://www.devart.com/ru/dbforge/mysql/studio/features.html
в частности:
# Генерация отчетов данных
# Построение сводных таблиц
У них, кстати, много ещё вкусного free4personal для cp1251 users:
http://www.devart.com/ru/dbforge/
5. Советую подписаться на MySQL newsletter (на сайте MySQL легко найти)
бывают интересные статьи, советы, новости, интервью с экспертами.
6. Блог о тюнинге MySQL
mysqlperformanceblog.com
Лучше читать записи постарее (в новых много слишком заумного и про их порт).
Performance super mini faq
В my.ini/my.cnf файле конфигурации есть опция innodb_flush_log_at_trx_commit, внимательно почитайте про неё.
innodb_flush_log_at_trx_commit=0 - вполне разумный выбор IMHO
Vars
К сожалению, в запросе MySQL трудно написать сложную программу с if, while и тд, как это можно сделать в t-sql. В MySQL всё должно представлять из себя выражение см на примере if.
Но переменные это что-то! Их не надо муторно объявлять с типом и можно использовать в самых удивительных местах.
Пример (чтобы в Java работало несколько statement; в запросе не забудьте allowMultiQueries=true в JDBC Connection String/URL):
set @a = null; set @b = null; set @c = null;
select @a, @b, @c;-- null, null, null - всё чисто и готово к эксперименту
select 'boo!', @a+@b+@c
FROM (SELECT @a := 1, @b := 2, @c := 3) t; -- boo!, 6 т.е. from отработал раньше
select @a, @b, @c;-- 1,2,3 значения сохранились
select @a, @b, @c from (select @a := @a*10, @b:=@b*20, @c:=@c*30) t;-- 10,40,90 опять from отработал раньше
select @a, @b, @c;-- 10,40,90 и значения сохранились
SqlWatch
Отличная утилита code.google.com/p/sqlwatch !
Ставится как "JDBC proxy", предоставляет широкие возможности для профилирования sql запросов приложения.
JDBC Connection String
Сейчас использую следующий набор опций: jdbc:mysql:///название_БД?connectTimeout=180000&allowMultiQueries=true&cacheServerConfiguration=true&useLocalSessionState=true&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true
1. Сам MySQL и документацию (жаль в chm перестали делать) брать здесь:
http://dev.mysql.com/downloads/mysql/
2. Java JDBC Driver:
http://dev.mysql.com/downloads/connector/j/
3. Простая, легкая консоль (я пользуюсь ею для повседневных нужд - это free OS урезная редакция):
http://code.google.com/p/sqlyog/
4. Очень навороченная, крутейшая консоль+enterprise manager+отчеты
(можно в некоторых случаях отчеты делать не в web UI, а используя эту студию):
http://www.devart.com/ru/dbforge/mysql/studio/
Вот список возможностей:
http://www.devart.com/ru/dbforge/mysql/studio/features.html
в частности:
# Генерация отчетов данных
# Построение сводных таблиц
У них, кстати, много ещё вкусного free4personal для cp1251 users:
http://www.devart.com/ru/dbforge/
5. Советую подписаться на MySQL newsletter (на сайте MySQL легко найти)
бывают интересные статьи, советы, новости, интервью с экспертами.
6. Блог о тюнинге MySQL
mysqlperformanceblog.com
Лучше читать записи постарее (в новых много слишком заумного и про их порт).
Performance super mini faq
В my.ini/my.cnf файле конфигурации есть опция innodb_flush_log_at_trx_commit, внимательно почитайте про неё.
innodb_flush_log_at_trx_commit=0 - вполне разумный выбор IMHO
Vars
К сожалению, в запросе MySQL трудно написать сложную программу с if, while и тд, как это можно сделать в t-sql. В MySQL всё должно представлять из себя выражение см на примере if.
Но переменные это что-то! Их не надо муторно объявлять с типом и можно использовать в самых удивительных местах.
Пример (чтобы в Java работало несколько statement; в запросе не забудьте allowMultiQueries=true в JDBC Connection String/URL):
set @a = null; set @b = null; set @c = null;
select @a, @b, @c;-- null, null, null - всё чисто и готово к эксперименту
select 'boo!', @a+@b+@c
FROM (SELECT @a := 1, @b := 2, @c := 3) t; -- boo!, 6 т.е. from отработал раньше
select @a, @b, @c;-- 1,2,3 значения сохранились
select @a, @b, @c from (select @a := @a*10, @b:=@b*20, @c:=@c*30) t;-- 10,40,90 опять from отработал раньше
select @a, @b, @c;-- 10,40,90 и значения сохранились
SqlWatch
Отличная утилита code.google.com/p/sqlwatch !
Ставится как "JDBC proxy", предоставляет широкие возможности для профилирования sql запросов приложения.
JDBC Connection String
Сейчас использую следующий набор опций: jdbc:mysql:///название_БД?connectTimeout=180000&allowMultiQueries=true&cacheServerConfiguration=true&useLocalSessionState=true&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true
Подписаться на:
Сообщения (Atom)