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
 

2011-02-09

Займемся самолечением

Важно! Предупреждение! Я не доктор и от медицины далек. Если вы заболели, лучше обратиться к врачу. Диагноз ставит врач. Лечение назначает врач (внимательно изучите, что он вам назначил).
Антибиотики назначает только врач! Не занимайтесь самолечением!

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

Коллеги просто напугали своими обширными познаниями в медицине на уровне "солнце вращается вокруг земли".
Решил изложить, что я знаю о креветках и отправлять всех читать этот пост.

Итак, горькая правда состоит в том, что современная медицина не умеет лечить большинство вирусных инфекций (перечитайте ещё раз).

Организм заболевшего человека через некоторое время САМ обучается бороться с проникнувшим вирусом и побеждает его.
Очень важно, что температура, которая бывает при этом – это помощник организма
(она в т.ч. убивает вирусы), показатель того, что организм борется.


Всё "лечение", которое даёт в данном случае медицина сводится к тому, чтобы снять интоксикацию, симптомы или осложнения = ПОСЛЕДСТВИЯ.

Так любимые многими антибиотики НЕ воздействуют на вирусы!
Они убивают бактерии, в том числе полезные, нанося при этом серьезный удар по организму.
Их назначают в том случае, если, например, после гриппа у вас развилась бактериальная ангина.
Пить их нужно, в крайнем случае, если осложнение таки появилось и оно серьезное.
Назначает прием антибиотиков и их конкретный тип - только врач! (Внимательно изучите назначение, если оно из книжек времен Брежнева - обсудите с врачем более современные и щадащие средства!)

Существенным прорывом науки в борьбе в вирусами являются прививки: это (всё сложнее, но для простоты) убитые или ослабленные вирусы. Организм учится определять и убивать их в тренировочном режиме, после чего в боевом это происходит быстрее.
При этом они не дают 100% гарантии и сами могут приводить к осложнениям ;-)

80% так называемых лекарств в аптеках - это вообще не лекарства, а препараты для снятия симптомов заболевания т.е. вы болеете, заражаете коллег, но выглядите внешне почти здоровым (всякие терафлю и тд).
Пользы от их применения нет вообще никакой. Т.к. они зачастую только вредят, например, снижая температуру.

Что делать, если заболели?
1.    заболев лежать, много пить (вода, чай с травами, шиповником), есть много витамина С, много спать.
2.    по возможности (до 38-39 градусов) не сбивать температуру
3.    не жрать без необходимости антибиотики
4.    чистить нос Coclean
5.    капать в нос Гриппферон
6.    пить Ремантадин (римантадин)
7.    пить настойку Эхиноцеии Пурпурной и Арбидол



Что делать, чтобы минимизировать риск заболевания?
Тренировать собственные защитные функции организма.
1.    прививка
2.    закаливание, например, контрастный душ (и кожа подтянется)
3.    зарядка / физические нагрузки
4.    прогулки на свежем воздухе
5.    чистить нос Coclean
6.    капать в нос Гриппферон (профилактические дозы)
7.    пить настойку Эхиноцеии и Арбидол  (профилактические дозы)
8.    чистка организма