2015-07-07 90 views
5

Bir metin alanına indekslemenin, like 'keyword%' ile yapılan aramalarda yardımcı olabileceğini biliyorum.'%% keyword%' gibi sorguların performansını artırabilecek herhangi bir DB dizini var mı?

like '%keyword%' ile tam metin aramasını geliştirebilecek çapraz veritabanı dizini var mı?

Genel olarak, 1000 karakterden az metin içeren bir metin alanı için, bir web isteği için like %keyword% sorgusunun performansı ne zaman kabul edilemez olur? Tablo 10K satırlara ulaştığında söyle?

+0

Postgres, '%' anahtar kelimesi% 'için bir dizin kullanabilir: http://www.depesz.com/2011/02/19/waiting-for-9-1-faster-likeilike/ ne olduğundan emin değilsiniz Ancak "veritabanı-veritabanı endeksleme" ile demek. –

+0

Tüm dbs tarafından desteklenen standart SQL'de oluşturulabilen bir dizini kastediyorum. – NeoWang

+2

Çoğu DBMS, yerleşik bir metin aramayı 'LIKE' için hızlı bir alternatif olarak destekler - ancak sözdizimi her bir DBMS için farklıdır. –

cevap

2

Belirli komutları kullanarak FULLTEXT INDEX ve dahilinde arama kullanabilirsiniz - kullanabilirsiniz MSSQL üzerinde CONTAINS (sütun, '* kelime *') veya FREETEXT - performansıyla ilgili soruya gelince https://msdn.microsoft.com/en-us/library/ms142583.aspx

, bu şiddetle altyapısına bağlı olan, verileriniz veya arama terimleriniz.