Re[24]: MySQL и качество
От: criosray  
Дата: 23.06.09 11:51
Оценка:
Здравствуйте, Anton Batenev, Вы писали:


AB>Тем, кому нужно только поле типа GUID, тем придется или править код или найти другой сервер БД. Проблемы тут я не вижу.


Не замечаете противоречия в своих словах?
Об оптимизаторе и движках
От: Mamut Швеция http://dmitriid.com
Дата: 23.06.09 13:52
Оценка:
_> Я уж не говорю, что на реально сложном запросом на несколько экранов поделка MySQL загнется — оптимизатор зачаточный. Ну как хотя-бы с запросиком на несколько... 10 джойнов?

Оптимизатор Мускуля и ен может быть незачаточным. Потому что он может оптимизировать сколько ему влезет, а потом напорется на движок.

Например, InnoDB не умеет быстро выполнять запрос SELECT COUNT(*) FROM table_name. Все. И пусть у MySQL будет хоть мегаоптимизатор, на InnoDB этот щзапрос выполнится где-то за O(m.n), где m — размер записи, а n — количество записей. И хоть ты убейся.

Так что десять джойнов могут спокойно упереться не только в оптимизатор, но и в движок
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[20]: MySQL и качество
От: Mamut Швеция http://dmitriid.com
Дата: 23.06.09 13:52
Оценка:
Здравствуйте, mrTwister, Вы писали:

T> T>> ___>Ах да, в MySQL со стандартом плохо, говорят не дотягивает даже до SQL-86.


T> T>> Давай по пунктам. Чего именно из стандарта нет в MySQL.


T> M>Здесь: http://troels.arvin.dk/db/rdbms/


T> Ну и?


Что ну и? Был вопрос:

Давай по пунктам. Чего именно из стандарта нет в MySQL.


Ответ на этот вопрос получен?
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[21]: MySQL и качество
От: mrTwister Россия  
Дата: 23.06.09 14:24
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Что ну и? Был вопрос:

M>

M>Давай по пунктам. Чего именно из стандарта нет в MySQL.


M>Ответ на этот вопрос получен?


Ты вообще читал, о чем там речь шла? Человек утверждал, что MySQL плохо поддерживает стандарт (очевидно _d_m_ имел ввиду хуже, чем MSSQL) и что он не поддерживает даже SQL86.
лэт ми спик фром май харт
Re[22]: MySQL и качество
От: Mamut Швеция http://dmitriid.com
Дата: 23.06.09 14:46
Оценка:
Здравствуйте, mrTwister, Вы писали:

T> M>Что ну и? Был вопрос:

T> M>

T> M>Давай по пунктам. Чего именно из стандарта нет в MySQL.
T> M>


T> M>Ответ на этот вопрос получен?


T> Ты вообще читал, о чем там речь шла? Человек утверждал, что MySQL плохо поддерживает стандарт (очевидно _d_m_ имел ввиду хуже, чем MSSQL) и что он не поддерживает даже SQL86.



Я могу еще раз. И по буквам. Я привычный.

___>Ах да, в MySQL со стандартом плохо, говорят не дотягивает даже до SQL-86.

T> Давай по пунктам. Чего именно из стандарта нет в MySQL.

Здесь: http://troels.arvin.dk/db/rdbms/


Возмонои не SQL-86, но до стандарта MySQL точно не дотягивает
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[23]: MySQL и качество
От: mrTwister Россия  
Дата: 23.06.09 15:06
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Возмонои не SQL-86, но до стандарта MySQL точно не дотягивает


А кто дотягивает?
лэт ми спик фром май харт
Re: Об оптимизаторе и движках
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.06.09 15:18
Оценка:
Здравствуйте, Mamut, Вы писали:

M> Например, InnoDB не умеет быстро выполнять запрос SELECT COUNT(*) FROM table_name. Все.


SELECT
    `TABLE_ROWS`
FROM
    `INFORMATION_SCHEMA`.`TABLES`
WHERE
    `TABLE_SCHEMA` = 'database_name' AND
    `TABLE_NAME`   = 'table_name'


Конечно, у подобного решения есть недостаток в виде того, что это оценочное значение, однако, на больших числах погрешность обычно вполне приемлемая.
avalon 1.0rc1 rev 247, zlib 1.2.3
Re[25]: MySQL и качество
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.06.09 15:18
Оценка:
Здравствуйте, criosray, Вы писали:

c> AB>Тем, кому нужно только поле типа GUID, тем придется или править код или найти другой сервер БД. Проблемы тут я не вижу.

c> Не замечаете противоречия в своих словах?

Где?!
avalon 1.0rc1 rev 247, zlib 1.2.3
Re[2]: Об оптимизаторе и движках
От: _d_m_  
Дата: 24.06.09 01:56
Оценка: +1
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, Mamut, Вы писали:


M>> Например, InnoDB не умеет быстро выполнять запрос SELECT COUNT(*) FROM table_name. Все.


AB>
AB>SELECT
AB>    `TABLE_ROWS`
AB>FROM
AB>    `INFORMATION_SCHEMA`.`TABLES`
AB>WHERE
AB>    `TABLE_SCHEMA` = 'database_name' AND
AB>    `TABLE_NAME`   = 'table_name'
AB>


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


Да-да я считал таким образом кол-во строк, а затем кто-то другой вставил в таблицу записей такое же кол-во как и было в таблице. Вобщем, очередные костыли.

PS: Да большинство фич MySQL — вроде нормальное яблоко, ан нет — сердцевинка то гнилая. А если мне надо точно знать число строк? А если на основе этого числа я в транзакции произвожу дальнейшие действия?
Re[24]: MySQL и качество
От: _d_m_  
Дата: 24.06.09 02:00
Оценка: +1 :)
Здравствуйте, Anton Batenev, Вы писали:


AB>Поддерживает, но не в типе поля. Это мы уже выяснили. Т.е. те, кто хочет воспользоваться приемуществами UUID, те им могут пользоваться уже сейчас. Тем, кому нужно только поле типа GUID, тем придется или править код или найти другой сервер БД. Проблемы тут я не вижу.


Ну вот и пришли к консенсусу
Re[3]: Об оптимизаторе и движках
От: mrTwister Россия  
Дата: 24.06.09 03:39
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>PS: Да большинство фич MySQL — вроде нормальное яблоко, ан нет — сердцевинка то гнилая. А если мне надо точно знать число строк? А если на основе этого числа я в транзакции произвожу дальнейшие действия?


Ну считай через SELECT count(*)... — это будет не медленнее, чем на Oracle\MSSQL, так как алгоритмическая сложность одинаковая. Mamut упомянул это в контексте того, что на MyIsam select count(*) работает за O(1), потому что там другая архитектура.
лэт ми спик фром май харт
Re[20]: MySQL и качество
От: dimgel Россия https://github.com/dimgel
Дата: 24.06.09 04:13
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>

T>MySQL Conforms to at least SQL-92.


check constraints
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[24]: MySQL и качество
От: Mamut Швеция http://dmitriid.com
Дата: 24.06.09 06:12
Оценка:
Здравствуйте, mrTwister, Вы писали:

T> M>Возмонои не SQL-86, но до стандарта MySQL точно не дотягивает


T> А кто дотягивает?


По ссылке все написано. SQL-2008 не поддерживает никто, естественно. Но это не относится к ответу на вопрос «Где MySQL не дотягивает до стандарта»
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[4]: Об оптимизаторе и движках
От: Mamut Швеция http://dmitriid.com
Дата: 24.06.09 06:41
Оценка:
Здравствуйте, mrTwister, Вы писали:

T> ___>PS: Да большинство фич MySQL — вроде нормальное яблоко, ан нет — сердцевинка то гнилая. А если мне надо точно знать число строк? А если на основе этого числа я в транзакции произвожу дальнейшие действия?


T> Ну считай через SELECT count(*)... — это будет не медленнее, чем на Oracle\MSSQL, так как алгоритмическая сложность одинаковая. Mamut упомянул это в контексте того, что на MyIsam select count(*) работает за O(1), потому что там другая архитектура.


Я об этом и говорю — что бардак с движками не позволяет MySQL'ю даже иметь нормальный оптимизатор запросов
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[25]: MySQL и качество
От: mrTwister Россия  
Дата: 24.06.09 07:36
Оценка: -1
Здравствуйте, Mamut, Вы писали:

M>По ссылке все написано. SQL-2008 не поддерживает никто, естественно. Но это не относится к ответу на вопрос «Где MySQL не дотягивает до стандарта»


Была претензия к MySQL, что мол он плохо стандарты поддерживает. Как выяснилось, не хуже остальных.
лэт ми спик фром май харт
Re[5]: Об оптимизаторе и движках
От: mrTwister Россия  
Дата: 24.06.09 07:39
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Я об этом и говорю — что бардак с движками не позволяет MySQL'ю даже иметь нормальный оптимизатор запросов


Ну дак _d_m_ очевидно решил, что на MSSQL select count(*) работает быстрее и с радостью пустился поливать говном MySQL
лэт ми спик фром май харт
Re[3]: Об оптимизаторе и движках
От: Anton Batenev Россия https://github.com/abbat
Дата: 24.06.09 08:35
Оценка:
Здравствуйте, _d_m_, Вы писали:

_> PS: Да большинство фич MySQL — вроде нормальное яблоко, ан нет — сердцевинка то гнилая. А если мне надо точно знать число строк? А если на основе этого числа я в транзакции произвожу дальнейшие действия?


Можешь описать простой use-case(ы) где жизненно необходимо точное (именно точное) знание количества строк? Пример с SELECT COUNT(*) очень наглядный для объяснения некоторых вещей, а я так до сих пор не могу придумать хорошего примера, когда нельзя пользоваться оценочным. Был бы благодарен.
avalon 1.0rc1 rev 247, zlib 1.2.3
Re[25]: MySQL и качество
От: Anton Batenev Россия https://github.com/abbat
Дата: 24.06.09 08:35
Оценка:
Здравствуйте, _d_m_, Вы писали:

_> AB>Поддерживает, но не в типе поля. Это мы уже выяснили. Т.е. те, кто хочет воспользоваться приемуществами UUID, те им могут пользоваться уже сейчас. Тем, кому нужно только поле типа GUID, тем придется или править код или найти другой сервер БД. Проблемы тут я не вижу.

_> Ну вот и пришли к консенсусу

Всегда только за!
avalon 1.0rc1 rev 247, zlib 1.2.3
Re[6]: Об оптимизаторе и движках
От: _d_m_  
Дата: 25.06.09 03:52
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Здравствуйте, Mamut, Вы писали:


M>>Я об этом и говорю — что бардак с движками не позволяет MySQL'ю даже иметь нормальный оптимизатор запросов


T>Ну дак _d_m_ очевидно решил, что на MSSQL select count(*) работает быстрее и с радостью пустился поливать говном MySQL



У меня select count на 3282892 строк за 3 сек.
Re[4]: Об оптимизаторе и движках
От: _d_m_  
Дата: 25.06.09 03:54
Оценка: 2 (1) +1
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, _d_m_, Вы писали:


_>> PS: Да большинство фич MySQL — вроде нормальное яблоко, ан нет — сердцевинка то гнилая. А если мне надо точно знать число строк? А если на основе этого числа я в транзакции произвожу дальнейшие действия?


AB>Можешь описать простой use-case(ы) где жизненно необходимо точное (именно точное) знание количества строк? Пример с SELECT COUNT(*) очень наглядный для объяснения некоторых вещей, а я так до сих пор не могу придумать хорошего примера, когда нельзя пользоваться оценочным. Был бы благодарен.


Сходу, что за 5 секунд в голову пришло — пэйджинг с навигацией по номеру страницы для последних страниц будет косячить.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.