![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam baze 3 mln słów, chce wyciagnac jak najszybciej sie da slowa podobne, konczace się na 3 ostatnie wpisane litery np: %ący kod uzyty SELECT * FROM `slowa` where slowo like '%ący' Teraz trwa to 3 sekundy, czy da się jakos usprawnic tę prace, aby to szybciej dzialalo? Dziekuje |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Index założony na kolumnie?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
tak, index jest.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Index w takim przpadku Ci nic nie da. Indeksy nie działają jeżeli w LIKE masz % na początku stringu.
Jedynie może pomóc FULLTEXT Index i składnia MATCH() ... AGAINST |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
dzieki potestuje.
Jakby ktos mial jeszcze jakies sugestie to prosze napisac. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Jeśli zawsze szukasz po 3 ostatnich literach to może dodać nową kolumnę zawierającą właśnie 3 ostatnie litery ze słowa. Wówczas mógłbyś założyć indeks na to pole i wyszukiwać z dokładnym dopasowaniem ( = ).
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
http://pl.wikipedia.org/wiki/N-gram
http://www.beldzio.com/czy-chodzilo-ci-o-%...6-czyli-n-gramy To może być dla Ciebie dobre rozwiązanie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 00:00 |