Ограничения MySQL - PullRequest
       5

Ограничения MySQL

5 голосов
/ 08 мая 2009

При использовании MySQL 5.1 Enterprise после нескольких лет использования других продуктов баз данных, таких как Sybase, Infomix, DB2; Я сталкиваюсь с вещами, которые MySQL просто не делает. Например, он может генерировать план запроса EXPLAIN только для запросов SELECT.

Что еще я должен остерегаться?

Ответы [ 6 ]

7 голосов
/ 08 мая 2009

Длинный список можно посмотреть здесь: MySQL Gotchas

4 голосов
/ 08 мая 2009

Полные внешние соединения. Но вы все равно можете сделать левое внешнее соединение правым внешним объединением.

2 голосов
/ 09 мая 2009

Одна вещь, с которой я столкнулся поздно в проекте, это то, что типы данных MySQL не могут хранить миллисекунды. Даты и метки времени разрешаются только в секундах! Я не могу вспомнить точные обстоятельства, когда это произошло, но мне пришлось хранить int, который мог бы быть преобразован в дату (с миллисекундами) в моем коде.

Драйверы MySQL JDBC кэшируют результаты по умолчанию до такой степени, что это приведет к нехватке памяти в вашей программе (исключение OutOfMemory). Вы можете отключить его, но вы должны сделать это, передавая некоторые необычные параметры в оператор при его создании:

Statement sx = c.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
sx.setFetchSize(Integer.MIN_VALUE);

Если вы сделаете это, драйвер JDBC не будет кэшировать результаты в памяти, и вы сможете выполнять огромные запросы НО что делать, если вы используете систему ORM? Вы не создаете утверждения сами, и поэтому не можете отказаться от кэширования. Что в основном означает, что вы полностью испорчены, если ваша система ORM пытается что-то сделать с большим количеством записей.

Если бы у них был какой-то смысл, они бы сделали это настраиваемым с помощью URL JDBC. Ну хорошо.

1 голос
/ 09 мая 2009

Это все еще не делает ограничения ПРОВЕРИТЬ!

1 голос
/ 09 мая 2009

Это не стоит целое состояние. Попробуйте создать кластерный веб-сайт на нескольких компьютерах с несколькими ядрами в базе данных Oracle. Уч.

1 голос
/ 09 мая 2009

Разрешить для ролей или групп

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...