![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 6.05.2011 Ostrzeżenie: (10%) ![]() ![]() |
Potrzebuję efektywnego rozwiązania, które będzie szybko działać na dużej ilości danych.
Mam np. bazę maili, z której potrzebuje: 1. wydobyć maile onetu we wszystkich domenach 2. przefiltrowanie tej bazy aby nie zawierała maili z onetu Tablica:
Można to zrobić za pomocą strpos() ale wydaje mi się, że nie jest to wydajne.
Proszę o jakiś lepszy przykład tych dwóch moich problemów. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź testowo preg_match, sprawdza się dopiero przy dużej ilości danych do przetworzenia ale działa wtedy szybciej od strpos.
Różnica w czasie 2-3ms na 20k wyników, przynajmniej u mnie ale miałem trochę inne dane. -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Podczas wykonywania zapytania do bazy możesz użyć chociażby NOT LIKE by pozbyć się niechcianych rekordów. Jak? Poszukaj sam.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
jeżeli to nie jest jednorazowa operacja, tylko działanie na bierząco to określaj domenę przy dodawaniu wiadomości w dodatkowej kolumnie tabeli, wtedy pobieranie będzie bardzo wydajne bo nic nie będzie trzeba filtrować
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 6.05.2011 Ostrzeżenie: (10%) ![]() ![]() |
Próbowałem tez tak, żeby było od razu na bazie:
Aby wykluczyć z listy wszystkie maile z onetu i dalej się pojawiają. Dlaczego? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 349 Pomógł: 72 Dołączył: 22.01.2008 Skąd: Wadowice/Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
-------------------- "PHP to człowiek. MySQL to również człowiek."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 11:51 |