Используя ПОДОБНЫЙ по сравнению с = для точного строкового совпадения

Я не уверен, почему вы должны использовать MediatorLiveData в других местах. На самом деле вы можете использовать MutableLiveData и наблюдать его там, где вы хотите.

Ознакомьтесь с моей реализацией MVVM, чтобы увидеть, как она работает.

Kotlin-MVVM-Demo

32
задан Flimzy 27 August 2017 в 22:04
поделиться

2 ответа

Я сказал бы, что = компаратор будет быстрее. Лексическое не отправляет сравнение с другой лексической системой, чтобы сделать общие соответствия. Вместо этого механизм может просто соответствовать или идти дальше. Наш дб на работе имеет миллионы строк, и = всегда быстрее.

33
ответ дан 27 November 2019 в 21:05
поделиться

В достойном DBMS механизм DB распознал бы, что не было никаких подстановочных символов в строке и неявно не превращают ее в чистое равенство (не обязательно то же как =). Так, Вы только напали бы на маленькую производительность запуск, обычно незначительный для любого запроса достойного размера.

Однако оператор MySQL = не обязательно действует способ, которым Вы ожидали бы (как чистая проверка равенства). А именно, это по умолчанию не принимает во внимание конечные пробелы для CHAR и VARCHAR данные, означая что:

SELECT age WHERE name = 'pax'

даст Вам строки для 'pax', 'pax<one space>' и 'pax<a hundred spaces>'.

, Если Вы хотите сделать надлежащий проверка равенства, Вы используете binary ключевое слово:

SELECT field WHERE name = binary 'pax'
<час>

можно протестировать это с чем-то как:

mysql> create table people (name varchar(10));

mysql> insert into people value ('pax');
mysql> insert into people value ('pax ');
mysql> insert into people value ('pax  ');
mysql> insert into people value ('pax   ');
mysql> insert into people value ('notpax');

mysql> select count(*) from people where name like 'pax';
1

mysql> select count(*) from people where name = 'pax';
4

mysql> select count(*) from people where name = binary 'pax';
1
6
ответ дан 27 November 2019 в 21:05
поделиться
Другие вопросы по тегам:

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