Как который SQL-запрос лучше, СООТВЕТСТВИЕ ПРОТИВ или?

var value = "http://example.com/video/12345/myvid.mp4";
var parts = value.split('/');
var partYouWant = parts[4]; // If you want take 12345 
                            // part[5] if you want take myvid.mp4
66
задан Taryn 22 August 2011 в 18:14
поделиться

1 ответ

Обновление

Начиная с MySQL 5.6 и более поздних версий, InnoDB Таблицы поддерживают Соответствие ... Против .


Первый из них намного лучше. В таблицах MyISAM для этих столбцов будет использоваться полнотекстовый индекс. Другой будет выполнять полное сканирование таблицы, выполняя concat для каждой строки, а затем сравнивать.

LIKE эффективен только в том случае, если вы выполняете его с:

  • столбцом (а не результатом функции, если только ваш конкретный поставщик баз данных поддерживает функциональные индексы - например, Oracle - и вы их используете);
  • начало столбца (т. е. LIKE 'blah%' вместо LIKE '% blah%' ); и
  • столбец, который индексируется.

Если какое-либо из этих условий не выполняется, единственный способ для механизма SQL выполнить запрос - выполнить полное сканирование таблицы. Это может быть использовано под 10-20 тысяч строк. Кроме того, он быстро становится непригодным для использования.

Примечание: Одна из проблем с MATCH на MySQL заключается в том, что он, похоже, сопоставляется только с целыми словами, поэтому при поиске «bla» столбец со значением «не будет соответствовать» бла », но поиск« бла * »будет.

63
ответ дан 24 November 2019 в 15:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: