Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wydajnosc operacji binarnych
Xellos
post 21.01.2004, 22:38:08
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...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:25