После года разработки и трёх предварительных выпусков опубликован первый стабильный релиз новой ветки СУБД MariaDB 10.6, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Поддержка новой ветки будет осуществляться 5 лет, до июля 2026 года...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=55463
> Кодировка utf8 переведена с четырёхбайтового представления utf8mb4 (U+0000..U+10FFFF) на трёхбайтовое utf8mb3 (охватывает диапазон Unicode U+0000..U+FFFF).А зачем?
Чтобы предельную длину текстового индекса в символах немножко увеличить.
Потому что она рассчитывается от максимального размера символа.
С utf8mb4 был лютый адешник.
И создать проблем в дефолтных настройках при попытке сохранить emoji, например.
По совсем-совсем дефолту ставится utf8mb4, так что здесь у вас проблем не будет.
Это изменение - чтобы не было путаницы для тех, кто ставит просто utf8.
Наоборот вроде грозились сделать. Сам по себе mb3 это легаси отросток мускуля из давних времен который никому не нужен и все кто используют его или марию не первый день и так явно ставят mb4. Возможно, в новости ошибка
А, нет, никакой ошибки. Это первый этап перевода utf8 на mb4 по умолчанию: https://jira.mariadb.org/browse/MDEV-8334
на самом деле идея так себе - перевернуть все с ног на голову, чтобы потом еще раз перевернуть.
эээ, йопт.
это в 10.6 или в 10.6.3 изменили?
если 10.6.2 -> 10.6.3 это очень подло так посреди версии делать
10.6.1 и 10.6.2 альфа выпуски :)
выяснил что это изменение было с 10.6.0 -> 10.6.1. и впрочем можно сказать на 10.6 будем жить на 3байтных ютф8. впрочем это всегонавсего дефолт который можно под себя настроить. просто существуют широченные таблицы которые по-дефолту делаются с ютф8 и потом невлазят в лимиты
Молодцы.
здесь новый тренд наметился?https://www.opennet.ru/openforum/vsluhforumID3/124755.html#2
Молодец, заметил
Молодец
Просто лайкосоство.
От плюсиков на этом сайте нет никакой выгоды, даже зарегистрированным.
ЧСВ разве что потешить
Два чая этому господину
TokuDB то за что?
> The TokuDB storage engine has been deprecated by upstream
А говорили
>> независимая организация MariaDB FoundationВот закроют Мускул и улетит их независимая организация на дно океана и илом покроется.
ну надо же придать видимость воздуху который будут продавать ?...
Отжать MySQL (tm) не удалось - вот и приходится что-то выдумывать.
Току прикупила Перкона. А Перкону (и лично Зайцева) Мария не любит. Такие, брат, дела. Зато наместо отличнейшей сторидж енджин они везде суют фейсбукувскую недоделку, MyRocks.
MyRocks - это офигенный движок. В том смысле, что попробовав - офигеешь. В том смысле, что офигеешь и выкинешь. Оно безбожно жрёт память, с ростом объёма данных начинает влетать в вечное их переупорядочивание, от этого тормозит и становится неюзабельным. Оно не умеет нормально изоляцию транзакций. Оно не умеет онлайн ддл. Оно крашится и корраптит данные. В этом можно хранить только то, что не жалко выкинуть, зачем они вообще это убожество втянули в MariaDB - сказать сложно.
> В этом можно хранить только то, что не жалко выкинутьThis behavior is by design.
Току закопала Перкона. Сначала купила, потом ниасилила и закопала.
Желаю в аду им гореть за сие доблестное деяние.Ни одного нормального движка с компрессией в MySQL не осталось. В InnoDB кое-как юзабельно сжатие страниц, правда требует по сути SSD - на HDD шерето sparse-файлов приводит к такой фрагментации, что лучше не трогать. И сжатие выходит хуже раза в 2-3 чем у TokuDB... но хотя бы есть.
InnoDB сама по себе жрет много места, и со сжатием она выходит на уровень несжатой MyISAM, и то не всегда, и с гарантированной просадкой производительности. Аналогов току нет.
Не, ну MyISAM - это вообще выкрасить и выбросить, оно ж в транзакции не умеет.
А так - да.
а слабО без транзакций писАть? ;)
s/слабо/нафига/
Когда на расте его перепишут?
Когда заплатят
>Обеспечена атомарность выполнения выраженийох елки, зачем я зашел читать про эту поделку. пойду нормальной базой пользоваться
Что не так?
Это какой? VacumDB?
SQLite хватит всем. Ну или почти всем.
это они только сейчас с mysql 8.0 синхронизировались?
>Улучшена совместимость с СУБД OracleЛучше бы улучшили совместимость с MySQL 8, мне приходится мигрировать на него из-за отсутствующих в MariaDB нужных мне фич
Каких?
Упорядоченные по нисхождению индексы например.
Мигрировать пока не собираюсь, но точу когти.
а в чем смысл сидеть на марии? mysql 8 улетел вперед, мария синхронизируется с ним с приличным отставанием, а своих фич не так уж и много.
Еще потому что в дистрибах марию ставят по дефолту везде.
То есть вся проблема в том, чтобы установить mysql из ораклового репозитория? Это прям так сложно?
Тяжеловато мигрировать туда-сюда с гигабайтными и терабайтными базами...
Поэтому выбор делается раз и надолго.
Никто никуда не улетел. Мария с мусклем активно обмениваются фичами, по мере доведения до продакшна. Что-то ушло вперед в марии, что-то в мускле, в будущих релизах засинхронятсякак синхронилось ранее.Лично мне в марии люто втащил ROW TYPE OF. Реализация вообще копеечная, странно, что лет десять тому не сделали.
> Лучше бы улучшили совместимость с MySQL 8, мне приходится мигрировать на него из-за отсутствующих в MariaDB нужных мне фичВы будете шокированы, если попробуете PostgreSQL :) Без шуток. Правда привыкать к некоторым вещам нужно, например, индексы не используются и порядок записей будет неопределённый, если явно не указать в запросе как сортировать результат.
Это да, я был шокирован, насколько оно убогое во всех смыслах.
Ещё и удалённые записи само освобождает через пень-колоду.
О, любители вакуумов минусить начали.
Ребят. Если я из таблицы в 500-600 гиг на сто с фигом миллионов записей удалю 10 миллионов за прошлый месяц, которые в архив сбросил - мне сколько потом ждать, пока оно отвакуумится, чтобы оно дальше не пухло и не тормозило?
И если вариант с датами ещё можно как-то партициями решить, то вариант с интервалами уже так просто не шардится.
Что-то мне подсказывает, что вам нужна колоночная база. Типа кликхауса.
При таких вводных и innodb опухнет не меньше.
а можно подробнее?
Можно https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-version...If you insert and delete rows in smallish batches at about the same rate in the table, the purge thread can start to lag behind and the table can grow bigger and bigger because of all the “dead” rows, making everything disk-bound and very slow
> Можно https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-version...
> If you insert and delete rows in smallish batches at about the
> same rate in the table, the purge thread can start to
> lag behind and the table can grow bigger and bigger because
> of all the “dead” rows, making everything disk-bound and very slowтам имеется ввиду непрерывный процесс удаления маленькими порциями, который будет интесивным для диска и поэтому не даст обновиться журналу удаления, что приведет к увелечению его размера
это не то же самое что одной транзакциией удалить строки в пределах "прошлого месяца"
но даже если нужно порционно удалять данные, то предлагают решение в виде задержки между порциями, в том числе с помощью встроенных средств типа innodb_max_purge_lag
и это всяко лучше иметь распределенную во времени нагрузку, чем здоровенный вакум который будет блокировать все что ему понадобится на ощутимое время
Автовакуум ничего не блокирует.
> Автовакуум ничего не блокирует.а разве это не все тот же вакум который запускается по расписанию?
>> чтобы оно дальше не пухло и не тормозилоОНО, Postgress, ПОД MIT ЛИЦЕНЗИЕЙ.
Вы существуете:
1. В безвоздушном пространстве
2. На бабушкину пенсию
3. Просто УКРАЛИ лицензию на Марию или на Мускул?А вы цены знаете? Чем рассчитываете расплатиться с Oracle в случае разоблачения?
Выкатят-то ущерб по SAAS прайсу. А он жесток.
Я знаю, что жарко.
Если сильно припекает - обливайтесь прохладной водой, оборачивайте голову мокрым полотенцем.
Неистово плюсую. Тюнинг адский, распределение никакое… Если уж так синтаксис сей студенческой поделки нравится, тогда лучше уж тараканДБ.
> Вы будете шокированы, если попробуете PostgreSQL :) Без шуток.Угу, какие там шутки, отпаивать неделю после шока придётся ))
Работал по очереди с MySQL/MSSQL/Oracle, переход между ними был в целом нормальный. Чуть другие тулы, отличающийся синтаксис некоторых выражений и функции, но ничего критичного, переключаться туда-сюда несложно. Первое знакомство с PostgreSQL - бл№";, что это за $%^#$@#%$ ?! PgAdmin - хрень чуть лучше phpmyadmin, рядом с MySQL Workbench/SQL Server Management Studio и даже SQL Developer (кто сказал TOAD/PL/SQL Developer?) не стояло. Зато пихон+уэб, да. Каждый раз, когда сталкиваюсь с PostgreSQL, реакция одна - "Эх, снова с этим $#%$#% работать... А нет чего-то нормального, а?"
Ну не знаю. Работал только с MySQL и PostgreSQL.
Как по мне так наилучший вариант - это консольные клиенты mysql/psql.
Это если достаточно че-то дефолтное развернуть на уровне девопса. А если надо именно разработчиком БД быть, и поддерживать, замучаешься этими консольками пользоваться, менее производительно получается + шансов накосячить больше, а если еще и на живом проде... А динамические процедуры, триггеры...
Если быть разработчиком БД, а не веб-макакой, то зачем вебморды для вебмакак типа пхпмуадмина?Полно полноценных GUI клиентов. Тот же DataGrip. Если хочется опенсорс - dbeaver.
После Oracle SQL Developer, PL/SQL Developer, TOAD, MSSQL Develompent Studio - Dbeaver просто верхами всё и сразу, но ничего более детально.
DataGrip не пробовал, но остальные IDE нравятся.
Для мускула брать DataGrip лицуху жирновато. Для больших баз другое дело.
Если устраивает сидеть на бетах (которые у JetBrains часто стабильнее релизов), то всегда есть EAP, а сразу после релиза - триал, к моменту издыхания триала появляется очередной EAP.
Благодарю за инфу
Да, если нет неприязни к snap-у, то сидение на EAP/триалах автоматизируется и сводится к snap install --edge.
Поставил DataGrip. Не нашел где в Марии создать триггер.
Когда в БД сотня связанных таблиц, тыща хранимых процедур, триггеров сотни, представлений, десятки задач планировщика, терабайт данных, синхронизация с другими базами, во веселуха через консольку то разрабатывать.
Это вам не под CMS на локалхосте завести пользователя.
> сотня связанных таблиц, тыща хранимых процедур, триггеров сотни, представлений, десятки задач планировщика, терабайт данных, синхронизация с другими базамиИ всё это вы мышкой в GUI накликали? Похоже у кого-то богатая фантазия :-)
Непосредственно сам код руками конечно, но с помощью IDE. Всё глазами видно. Ограничения мышкой полностью делаются. Задачи заводятся тоже через формочку.
А про тестирование перед выкаткой в бой и версионирование кода и схемы БД вы узнаете в следующем семестре ;-)
Не я один. Это с годами обрастает. dblink тоже мышкой.
А именно биллинг провайдыря, либо розничная сеть с сотнями точек и дочерних БД, связанных с главной.
Подтверждаю. Я работал и с большой БД Оракла, и с MSSQL поменьше. И только недавно с мускулом начал. Для марии кроме HeildiSQL падучей на каждый чих и написанной на делфи, но зато более менее функциональных сред нет. А по постгресу и подавна. Речь идет о свободных или дешевых средах. Платные то норм, но что-то не приходится платить не за оракловый (пусть и зависающий порой, но полнофункциональный) SQL Developer или MSSQL Dev Studio.
Я еще не упомянул пятиэтажные запросы с подзапросами по 500 строк для отчетности и прочих OLAP и аналитики. Без нормальной IDE тяжко. Я рад, что постгрес дышит в затылок оверпрайсному ораклу, но вот свободных сред разработки нормальных нет. И в мускуле/марии тоже много прикольных фич появилось, но с марией трудно работать без нормальной IDE, тем более под линух.
> Я еще не упомянул пятиэтажные запросы с подзапросами по 500 строк для отчетности и прочих OLAP и аналитики. Без нормальной IDE тяжкоТакие запросы пишутся в текстовом файле, по кусочкам которые выполняются в процессе написания, а через что их выполнять — не важно, через консольный psql даже проще.
В текстовом файле их пишут как раз там, где нет нормальной IDE. Пакеты Оракла или хранимые процедуры на несколько экранов тоже будете в текстовый файл копировать, а потом назад, когда надо отредактировать? ))
Я в боевой базе на сервере руками ничего не редактирую.
А код в базе самозарождается, да? ))
И dev/sit/uat/pre-prod отсутствуют? Разработчики пишут код в текстовых редакторах, а героический админ деплоит его через консоль руками? Какой-такой CI/CD? :D
Что-что, а говнище этот Оракл ещё то.
>но зато более менее функциональных сред нет.Разве MySQL Workbench не работает с марией?
нет. оракл же
У меня раньше работало, можете теперь совместимость потеряна конечно...
Недавно проверял. Выводится сообщение, что мол нет. Со свежей версией марии.
в смысле нет? Dbeaver имеет IntelliSense.
Неудобный он. И не всё поддерживает. Создать таблицу, написать запрос. А какие-то модификаторы, нестандартные вещи и прочее - уже ручками.
Давно использую https://dbeaver.io/ для работы со всеми DB.
Элементарно создать триггер если выбрать, то там какая-то ерунда генерится без кликательных вариантов. Проще просто закодить и выполнить.
> знакомство с PostgreSQL - бл№";, что это за $%^#$@#%$ ?!Абсолютно те же эмоции.
>> независимая организация MariaDB FoundationХоть в одной новости было про зависимую организацию? У них даже CentOS не зависит ни от кого.
PostgreSQL хватит всем
Чем отличается поведение update в postgres и в innodb?
В целом — ничем.
Вот она! СТАБИЛЬНОСТЬ!
Стабильность придёт когда будет киберпанк и мы будем движением пальца и силой мысли двигать блоки с миллиардами данных без епли с исходным кодом.
Концепция-то старовата, не?
Которая именно?
SQL? Реляционная алгебра?
И в чем оно устарело?
> Концепция-то старовата, не?Конечно старовата.
Херак-херак в рест апи, и в продакшн.
Хипстерам ныне часто даже в голову не приходит, что этот рест апи кто-то написал, и под ним в случае сложных приложений скорее всего SQL лежит, а возможно и не только.
Ты хотел сказать херак-херак на расте и в продакшн?
Тут собрались все домохозяйки, для которых разрабатывался SQL?
Предлогаю до кучи переименвать Master в massa.
Предложишь что-то лучше SQL для сложных зависимостей?
Понятно, что очередной your typical интернет магазинчик можно хоть в document storage держать, хоть вообще в txt'шники писать. Но когда у тебя допустим биллинг мобильной телефонии - никуда ты от SQL не денешься уже, всё остальное слишком нудно и бойлерплейтно.
Прошу прщения за предыдущий пост, сделанный не на трезвую годову. Сейчас это уже не кажется хорошей идеей. Склоняю голову перед "мастерами" (в хорошем смысле) SQL, собравшимися сдесь. Самому приходится использовать SQL в связке с paradox | DBF | CSV, а хотелось бы подняться до уровня postgre, mariadb...
заставить бы тебя 1000 раз на доске написать postgreS, чтоб запомнил
Прикол PostgreSQL в том, что он использует системный flush. Т.е. данные могут быть похерены в лёгкую. Даже MySQL себе такого не позволяет.
Вообщето пострес поддерживает ACID и имеет WAL
ACID и WAL он поддерживает исключительно через flush, а значит это не ACID и WAL, а фуфло для школьников.
То, что Postgres зафлашил данные это не значит, что ядро их сразу сбросило на диск. Любая нормальная БД использует только direct io, но только не Postgres.
Под flush я имел ввиду fsync. На хабре есть статья по теме, возможно это она, если нет сам найдёшь - https://habr.com/ru/company/oleg-bunin/blog/459444/
Это проблема того, что в современных ОС в общем случае невозможно гарантировать запись.
Единственный стопроцентный способ - работать напрямую с блочным устройством через direct IO в обход механизмов файловой системы, как это умеет Оракл.
А, вон внизу пишут, что Мария тоже так умеет. Молодцы.
> А, вон внизу пишут, что Мария тоже так умеет. Молодцы.это другое. это - сделать на устройстве свою файловую систему для себя, чтобы
обойти туповатые ext4/xfs/ufs и навороченных монстров btrfs/zfs/ntfs.
Это не проблема ОС, ОС вообще не должна этим заниматься, это проблема кривых рук создателей Postgres. Direct IO именно для этого и создан. Если создатели Postgres не смогли direct io, а все остальные смогли значит, не OS виновата.
Более того, OS в идеале не должна (и не делает этого) предоставлять файловую систему которая на 100% позволит реализоваться СУРБД, таких файловых систем быть не может поскольку это всегда будет trade-off. Это задача СУРБД на голом девайсе самой реализоваться файловую систему которая будет заточенна именно под эту СУРБД.
Я и не говорю, что это проблема ОС. Это проблема легаси. Постгрес очень старый проект, а в классических старых Unix-ах fsync вполне себе работал, и никому в голову не пришло добавить там уровень абстракции. Сейчас это уже не так просто.Есть экспериментальная ветка https://github.com/anarazel/postgres/tree/aio, посмотрим, что получится.
> То, что Postgres зафлашил данные это не значит, что ядро их сразу сбросило на дискЭто имеено это и значит, что за чушь ты пишешь? Fsync работает на тех же механизмах что и direct io, если у тебя fsync не работает то и direct io не будет. У диска есть внутренний кеш, если ты не в курсе.
Иди мат.часть учи, преимущество direct io в том, что он не страдает от race condition в отличии от fsync. И эти люди ещё думают, что разбираются в программировании.
Как ты думаешь, дилетант, что означает флаг O_DIRECT_NO_FSYNC в параметре innodb_flush_method СУБД про которую ты ничего не знаешь, а мнение имеешь?
Причём тут innodb_flush_method если речь идёт о Postgres?Ты думаешь, что вызов fsync данные сразу, как они были записаны через syscall типа write, отправляет на диск (в кеш диска)?
Или может всё таки в ядре есть логика переупорядочивания тех данных которые были записаны в один и тот же файл и для которого был вызван fsync, чтобы записать данные за один проход?
Что будет если несколько потоков будут писать в один файл и вызывать fsync?Иди учи мат.часть.
Если ты утверждаешь что fsync не даёт достичь консистентности то он и в innodb не даст, дурик.
Да нет, это ты дурик. В innodb fsync используется потому, что некоторые файловые системы типа XFS не могут в direct io.https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.ht...
```
O_DIRECT_NO_FSYNC: InnoDB uses O_DIRECT during flushing I/O, but skips the fsync() system call afterward. This setting is suitable for some types of file systems but not others. For example, it is not suitable for XFS. If you are not sure whether the file system you use requires an fsync(), for example to preserve all file metadata, use O_DIRECT instead. This option was introduced in MySQL 5.6.7 (Bug #11754304, Bug #45892).
```https://bugs.mysql.com/bug.php?id=45892
```
Some testing by Domas has shown that some filesystems (XFS) do not sync metadata without the fsync. If the metadata would change, then you need to still use fsync (or O_SYNC for file open).For example, if a file grows while O_DIRECT is enabled it will still write to the new part of the file, however since the metadata doesn't reflect the new size of the file the tail portion can be lost in the event of a crash.
Solution:
Continue to use fsync when important metadata changes or use O_SYNC in addition to O_DIRECT.
```Т.е. оказывается, что в итоге в innodb используется direct io и fsync в качестве дополнения для XFS из-за кривизны XFS. Вот поэтому любая нормальная СУРБД и не использует файловые системы от ОС, а использует raw диск на котором сама управляет.
Теперь вот тут почитай https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.ht...а то у тебя устаревшие данные на пару версий и больше не повторяй эту глупость про отсутствие fsync в mysql.
Я не могу понять, ты тупой или слепой. По твоей ссылке написано тоже самое что и в первой моей ссылке, что юзается fsync, а зачем он юзается я тебе показал в ссылке на баг. ПОТОМУ, ЧТО XFS НЕ МОЖЕТ ПРАВИЛЬНО В DIRECT IO.Теперь ты идёшь в игнор.
Ты прямо классический пример ламера, воинствующий дилетант не способный даже прочитать документациюAs of MySQL 8.0.14, fsync() is called after creating a new file, after increasing file size, and after closing a file, to ensure that file system metadata changes are synchronized. The fsync() system call is still skipped after each write operation.
Это точно бот написаный школотой.
Ему же написали, что есть баг - ```some filesystems (XFS) do not sync metadata without the fsync. If the metadata would change, then you need to still use fsync (or O_SYNC for file open).```Поэтому тупо всегда вызывается fsync на всякий случай, но direct io при этом включем, а в Postgres direct io всегда ВЫКЛЮЧЕН, что фатально в ряде случаев.
> что фатально в ряде случаев.Нет, это заблуждение.
А это твой любимый race condition в официальной документации mysql:Data loss is possible if redo log files and data files reside on different storage devices, and an unexpected exit occurs before data file writes are flushed from a device cache that is not battery-backed. If you use or intend to use different storage devices for redo log files and data files, and your data files reside on a device with a cache that is not battery-backed, use O_DIRECT instead.
Понял, он тупой - ```and your data files reside on a device with a cache that is not battery-backed, use O_DIRECT instead```Именно про это я ему и писал, а теперь он это преподносит, как доказательство его правоты. Хотя это может быть бот.
В режиме O_DIRECT mysql делает fsync, чтож ты прочитать то не можешь, ппц ;-)O_DIRECT or 4: InnoDB uses O_DIRECT (or directio() on Solaris) to open the data files, and uses fsync() to flush both the data and log files.
Чувак, ты просто критин, тебе уже 100 написали, что fsync вызывается в ДПОЛНЕНИЕ к direct io потому, что в XFS бага.
Ты не прав.Во первых — в XFS нет бага :-)
Direct IO не использует page cache, значит не будет загрязнения page cache'а в отличии от fsync. БД сама кэширует, в случае с fsync будет двойное кеширование. Зачем?
Это просто другой способ работы с диском, основанный на использовании кеша ФС. Что бы избежать двойного кеширования можно уменьшить кеш БД или наоборот увеличить что бы вытеснить кеш ФС, в зависимости от того что вам больше нравится.И fsync в innodb всё равно есть, не надо повторять эту чушь.
>Это просто другой способ работы с диском, основанный на использовании кеша ФС.Который фатален в ряе случаев.
>Что бы избежать двойного кеширования можно уменьшить кеш БД или наоборот увеличить что бы вытеснить кеш ФС, в зависимости от того что вам больше нравится.
Это просто пипец. На этом с тобой общение закончил, это клиника.
>И fsync в innodb всё равно есть, не надо повторять эту чушь.
Причём тут innodb? Тебе пишут, что речь идёт про Postgres.
> Который фатален в ряе случаев.Глупость.
у кого сколько по времени mariadb запускается при запуске линуха?
просто думаю 5 сек это норм или нет...
без баз, без таблиц
Доли секунды.
тогда долго, может, reverse dns lookup обламывается?
Если myisam не используется, можно выпилить myisamchk при запуске, тогда будет мгновенно.
MariaDB например умеет вот так:
https://mariadb.com/kb/en/innodb-system-tablespaces/#using-r...кто еще может таким похвастаться ? Oracle по-моему умел, но уже разучился, остальные мимо.
Это скорее фича innodb, чем марии, так что вроде все форки mysql умеют.https://dev.mysql.com/doc/refman/8.0/en/innodb-system-tables...
Не знал, спасибо за инфу.
красиво потом восстанавливать, после сбоя на диске.
На Innodb не пробовал, а вот с ораклом имел нехилый секс. После чего эту глупость не стали пользовать.
после сбоя на диске надо восстанавливать из бэкапа
> после сбоя на диске надо восстанавливать из бэкапаа бэкапы надо делать через Shadow Copy и никак иначе !
(естественно на raw devices это не работает, поэтому к черту raw devices).
Насчет WITH TIES несовсем корректно: добавление WITH TIES позволяет получить больше заявленных результатов, если последний и идущие за ними имеют одинаковую стоимость: например, после ORDER BY... LIMIT вы запрашиваете N результатов, но у N-ого и N+1-ого стоимость одинаковая. Какой из них отдаст вам сервер, поди угадай. А если WITH TIES, он отдаст вам оба (хотя и число отданных результатов будет не N, а N+1).
Помянем Монти и Зайцева.