![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 20.01.2004 Skąd: Dark Side of the Moon Ostrzeżenie: (0%) ![]() ![]() |
Forum.php.pl, pierwszy raz tu trafilem podazajac za czyjas sygnaturka na pl.comp.lang.php i jestem mile zaskoczony. Nareszcie znalazlem miejsce, w ktorym oprocz pytan 'poczatkujacych programistow', nie zagladajacych do manuali, mozna znalesc takze wartosciowe wypowiedzi ludzi, ktorzy znaja sie na rzeczy.
A skoro juz takie miejsce znalazlem, to skorzystam z okazji i zapytam, czy ktos wie, lub sprawdzal co jest szybsze (czy w ogole jest jakas znaczaca roznica): uzycie jednego pola tinyint(8) do przechowywania kilku flag bitowych, czy dla kazdej flagi osobne pole tinyint(1). Flagi te maja byc wykorzystane w polach WHERE i ORDER BY. Na poczatku sie nad tym nie zastanawialem i napisalem forum uzywajac flag binarnych: [php:1:3a0e7dbb47]<?php define("FOR_VIS",1); define("FOR_LOCKED",2); define("FOR_BLOCKED",4); define("TOP_ANNOUN",128); define("TOP_STICKY",64); define("TOP_LOCKED",32); define("POST_SIG",128); ?>[/php:1:3a0e7dbb47] Wykorzystanie w przykladach: [sql:1:3a0e7dbb47]SELECT forums.* FROM forums WHERE (forums.flagi&1)[/sql:1:3a0e7dbb47] [sql:1:3a0e7dbb47]SELECT topics.* FROM topics WHERE topics.forum=2 ORDER BY (topics.flagi&128) DESC, (topics.flagi&64) DESC[/sql:1:3a0e7dbb47] Wycialem z tych query rzeczy zbedne dla tego topicu. Narazie dziala dobrze, ale nie wiem co bedzie gdy forum spuchnie. Narazie nie przeprowadzalem zadnych benchmarkow, moze ktos ma gotowa odpowiedz i nie bede musial. P.S na polach z flagami sa oczywiscie ustawione index'y. -------------------- Yeah, whatever...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 17:25 |