| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > что быстрее? |
| Автор: chiffa 12.6.2017, 15:54 | ||||
| Всем добрый день. Если задача получить последний номер заказ и прибавить к нему 1. Подскажите, что будет выполняться быстрее.
или
если исходить из того, что записей будет несколько миллионов |
| Автор: Akina 13.6.2017, 09:19 |
| Запросы неэквивалентны. Сравнение не имеет смысла. |
| Автор: chiffa 13.6.2017, 09:22 |
| Почему не имеет смысла? Цель запроса получить номер следующего заказа и я выбирается наиболее оптимальна методика для этого |
| Автор: Zloxa 13.6.2017, 10:05 | ||||
Полагаю, при этом надо гарантировать его уникальность. Полагаю, при этом работа ведется в конкурентной среде.
Akina, MyISAM при update накладывает блокировку на строку или на блок(как МС, например)? |
| Автор: Zloxa 13.6.2017, 17:10 | ||||
Четр. Имел в виду InnoDB, которая с тразнзакции. Вечно их путаю. Сначаала написал MySQL, потом подумал что там от движка зависимо и решил уточнить про InnoDB, но вместо того написал MyISAM Судя по всему InnoDB залочит именно строку, не блок. |
| Автор: Akina 14.6.2017, 10:07 |
Да, Locking granularity = Row. Но в InnoDB все локи - индексные (даже если на таблице вообще нет индексов, всё равно существует синтетический кластерный индекс по внутреннему идентификатору записи), так что record lock порой на деле оказывается gap lock. |