Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Co jest ogólnie szybsze, grepowanie przez pliki lub uruchamianie zapytania SQL LIKE %x% przez obiekty BLOB?

Jeśli masz 1M plików do przeszukania, (najlepiej, jeśli jestem tego świadomy) przejdziesz przez każdy z nich za pomocą wyrażenia regularnego.

Dla wszystkich zamierzeń i celów, zrobisz to samo dla wierszy tabeli, jeśli wyślesz je masowo za pomocą operatora LIKE lub wyrażenia regularnego.

Moje własne doświadczenie z grepem jest takie, że rzadko szukam czegoś, co nie zawiera przynajmniej jednego pełnego słowa, więc możesz skorzystać z bazy danych, aby zmniejszyć zestaw, w którym szukasz.

MySQL ma natywne funkcje wyszukiwania pełnotekstowego, ale odradzałbym je, ponieważ oznaczają, że nie używasz InnoDB.

Możesz przeczytać o tych z Postgres tutaj:

http://www.postgresql.org/docs/current/static/textsearch .html

Po utworzeniu indeksu w kolumnie tsvector, możesz wykonać swój "grep" w dwóch krokach, jeden, aby natychmiast znaleźć wiersze, które mogą się niejasno kwalifikować, a następnie drugi według twoich prawdziwych kryteriów:

select * from docs where tsvcol @@ :tsquery and (regexp at will);

Będzie to znacznie szybsze niż cokolwiek, co może zrobić grep.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy jest jakiś powód, aby nadal używać wielkości węża do tabel i kolumn bazy danych?

  2. Jak wybrać odchylenie standardowe w rzędzie? (w SQL - lub R :)

  3. jak utworzyć db mysql za pomocą sqlalchemy

  4. Jak uzyskać wartość automatycznego przyrostu klucza podstawowego w MySQL za pomocą Hibernate?

  5. Jak zaimportować dane CSV do bazy danych MYSQL za pomocą PHP CodeIgniter?