SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.01.2014 22:45:04

JohnSmith
Участник
Зарегистрирован: 28.11.2013
Сообщений: 12

Сортировка результата по умолчанию

Добрый вечер!

Есть структура таблицы:

CREATE TABLE `tableName` (
  `recId` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `aimMetaHash` binary(16) NOT NULL,
  `dateTimeAdd` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
...
  PRIMARY KEY (`recId`),
  KEY `aimMetaHash` (`aimMetaHash`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

(`recId` - ID ряда, `aimMetaHash` - хеш (может быть не уникальным), `dateTimeAdd` - дата и время вставки из php)

Возник ряд вопросов по результату, который будет получен при выполнении запроса:
SELECT fields FROM `tableName` WHERE `aimMetaHash` IN ('value1', 'value2' ..., 'valueN')


1. Скажите, в результате будет возвращен результат, который отсортирован по возрастанию `recId` или по значениям 'value1', 'value2' ..., 'valueN', который указан в SELECT, а может как-то еще?
2. Будет ли зависеть результат, который вернет запрос от выбранного движка хранения данных (innodb, myisam)?
3. Нужно ли делать составной индекс, если я хочу получить результат отсортированный по убыванию `recId`? Запрос:
SELECT fields FROM `tableName` WHERE `aimMetaHash` IN ('value1', 'value2' ..., 'valueN') ORDER BY `recId` DESC

4. Если я использую движок хранения MyISAM и при вставке строк использую INSERT DELAYED  будет ли верно утверждение, что большему recId соответствует ряд с большим `dateTimeAdd` (напомню, что `dateTimeAdd` вставляется в запрос из php функцией date("Y-m-d H:i:s")). Задавая этот вопрос, руководствуюсь тем, что запросы добавляются в очередь последовательно, следовательно большему `dateTimeAdd` соответствует более старый рядили выполняются сразу.
5. Будет ли результат из вопроса 4 верен для  INSERT LOW_PRIORITY?

Спасибо!

Неактивен

 

#2 03.01.2014 23:26:35

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5828

Re: Сортировка результата по умолчанию

1,2. Без order by гарантировать порядок сортировки нельзя.

3. Результат будет отсортирован и без индекса, но с ним быстрее.

4,5 Подразумевается, что все вставки идут из скрипта с одним модификатором? Тогда да.
http://sqlinfo.ru/forum/viewtopic.php?pid=283#p283

P.S. Зачем вопросы для новичков задавать в разделе "оптимизация производительности"?

Неактивен

 

#3 04.01.2014 01:26:18

JohnSmith
Участник
Зарегистрирован: 28.11.2013
Сообщений: 12

Re: Сортировка результата по умолчанию

vasya написал:

P.S. Зачем вопросы для новичков задавать в разделе "оптимизация производительности"?

Василий, мне очень приятно, что вы ответили на мой вопрос, но может быть вы укажите ссылку на топик, где все поднятые вопросы получили ответ в разделе "Для новичков"? а не просто указываете это в ПС.

Благодарю.

Неактивен

 

#4 04.01.2014 01:30:03

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5828

Re: Сортировка результата по умолчанию

Мое замечание было о том, что логично эту тему было бы создавать в другом разделе. Но это конечно же вопрос не принципиальный.

Неактивен

 

#5 04.01.2014 01:30:53

JohnSmith
Участник
Зарегистрирован: 28.11.2013
Сообщений: 12

Re: Сортировка результата по умолчанию

vasya написал:

4,5 Подразумевается, что все вставки идут из скрипта с одним модификатором? Тогда да.
http://sqlinfo.ru/forum/viewtopic.php?pid=283#p283

не совсем понимаю, что значит модификатор? Я же указал в структуре, что aimMetaHash не является уникальным полем, какой модификатор? Или модиикатор это что-то иное?

Благодарю

Отредактированно JohnSmith (04.01.2014 01:32:13)

Неактивен

 

#6 04.01.2014 01:33:14

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5828

Re: Сортировка результата по умолчанию

Модификатор это LOW_PRIORITY и DELAYED

Неактивен

 

#7 04.01.2014 17:50:09

JohnSmith
Участник
Зарегистрирован: 28.11.2013
Сообщений: 12

Re: Сортировка результата по умолчанию

спасибо большое за разъяснение

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson