Чем плох MySQL
Чем плох MySQL?
интересная заметка про недостатки MySql..
http://www.rsdn.ru/Forum/message/2586801.aspx
Чем плох MySQL?
интересная заметка про недостатки MySql..
http://www.rsdn.ru/Forum/message/2586801.aspx
|
|
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.
Олег Курносов:
Выводы из rsdn.ru::
1) при разработке приложений под MySQL нужно думать о том, как обойти эту проблему с ORDER BY, вплоть до выгрузки результата в таблицу (на деле временную) с индексом по атрибуту сортировки.
2) иначе — на единицах гигабайт базы и сотнях пользователей — крах за крахом.
3) обязательны “узкие композиты” при использовании таблиц с BLOBами, нужно добиваться того, чтобы EXPLAIN SELECT показывал Using index — т.е. полное неприкосновение к самой таблице с полным исполнением запроса по композиту.
4) возможно, имеет смысл на коленке сделанный table partitioning.
yarry:
Самый частый запрос к базе в моем приложении имел вид:
SELECT * FROM t WHERE fk=12345 ORDER BY issued_at DESC LIMIT 1;
В базе был индекс по (fk, issued_at DESC). Посмотрел EXPLAIN - вижу, что для описанной в статье “страшной” сортировки извлекаются все записи, соответствующие fk. Непорядок.
Пересмотрел доку по индексам. Во-первых, MySQL игнорирует модификатор DESC при создании составных индексов. Ладно, сможем соорудить искусственное поле с обратным порядком нумерации. Пробуем пока тот же запрос, но без DESC в ORDER BY. Хрен там, опять rows = 58, а не 1!
В итоге похоже, буду заменять эти запросы на SELECT * FROM t WHERE fk=12345 AND issued_at=(SELECT MAX(issued_at FROM t WHERE fk=12345) AS foo; Согласно EXPLAIN, с таким запросом все шоколадно. Надо будет только сгенерить базу побольше для приближенного к реальности теста.
bolk:
Фигня, а не статья: “у MySQL есть два движка — MyISAM и InnoDB, MySQL гавно, потому что у MyISAM гавно”.
У MySQL не два движка. Их несколько, у нас на тестовом “SHOW ENGINES” показывает: MyISAM, MRG_MYISAM, CSV, FEDERATED, MEMORY, InnoDB, ARCHIVE. Помимо этого я могу навскидку вспомнить Memcache, Falcon, Partition.
Каждый движок под свою задачу. Глупо говорить “движок — гавно” при попытке использовать его для того, что он не предназначен.
Кстати, для backup у MySQL есть mysqlhotdump
Тимур Вафин:
Я что то тоже не понял, чем же в итоге плох mysql?
bolk:
Просто автору почему-то показалось, что MySQL=MyISAM
Олег Курносов:
В итоге MySQL не так уж и плох?
bolk:
Совсем неплох. Жаль только, что некоторые хорошие фичи MySQL (FULLTEXT, SPATIAL index) доступны в MyISAM, посмотрим что преподнесёт нам Falcon (в MySQL 5.2, 6.xx)