Rezultate 1 la 10 din 22

Subiect: Random from sql: cum sa il fac sa se incarce mai repede

Vizualizare arbore

  1. #19
    Avatarul lui loco
    loco este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    6th February 2008
    Posturi
    145
    Putere Rep
    34


    Implicit

    danielbuca multumesc, am sa ma documentez mai incolo despre acest termen
    Si oricum ajuta si normalizarea bazei de date, se simte cand o baza de date nu are indecsi sau/si e gandita prost.

    Citat Postat în original de evolution Vezi Post
    * loco, daca coloana cu iduri se cheama gigel, cum arata codul (nu inteleg ce e fix si ce e personalizat pt ce am eu in sql)?

    Functia JOIN se poate folosi si pentru altfel de selectii care ordoneaza rezultatele dupa un camp anume , ca sa maresc performanta de incarcare a paginii?
    $sql = "select * from produse ORDER BY doc_id DESC LIMIT 20";

    Pentru count (arata la fiecare subcategorie numarul total de produse ce se gasesc acolo) este vreo alternativa pt a mari viteza ?
    $sql2 = "SELECT COUNT(*) AS numrows from produse WHERE (subcategorie ='$nume_subcategorie')";
    1. SELECT * FROM produse AS a JOIN ( SELECT RAND()*( SELECT MAX(id) FROM produse ) AS rid) AS b WHERE a.gigel >= b.rid and categorie='$categorie' and subcategorie='$subcategorie' LIMIT 15
    Trebuie sa intelegi un query cat de cat..
    Sa-mi spui daca a functionat

    2. e foarte important sa-ti indexezi corect coloanele.. in acest caz sa ai index pe doc_id.
    Daca era "select * from produse WHERE id = 10 ORDER BY doc_id DESC LIMIT 20" indexul trebuia sa fie composite (adica un index multi-coloane) pe doc_id, id (in ordinea asta)

    3. Nu e bine gandita treaba cu count-ul. Eu personal as adauga in tabelul cu subcategorii o coloana in care sa-mi tin numarul de produse. Un unsigned SMALLINT de 5 sa zicem (daca nu depasesti 65535 produse/subcategorie).

    E simplu si eficient

    Un mic exemplu: Se adauga un produs si se alege subcategoria "test" (care are id-ul 10). Pe langa query-ul de "INSERT INTO produse ...." mai punem un query "UPDATE subcategorii SET count = count+1 WHERE subcategorie_id = 10".

    Iar cand vrei sa vezi cate produse ai la o subcategorie:
    SELECT count AS numrows FROM subcategorii WHERE subcategorie_id = '$produs_subcategorie_id'

    $produs_subcategorie_id reprezinta id-ul subcategoriei din care face parte produsul respectiv.

    Daca vrei sa afiseze fiecare subcategorie si numarul total de produse pentru fiecare subcategorie
    $query = mysql_query("SELECT * FROM subcategorii ");
    while ($row = mysql_fetch_array($query)) {
    echo $row['subcategorie_nume'].' ('.$row['count'].' )<br/>';
    }

    Alea le-am pus fictiv acolo.. mai departe te descurci tu.

    Important: in acel query am vazut "$nume_subcategorie", niciodata nu fa legatura intre tabele pe varchar/text sau mai stiu eu ce.. foloseste INT (si variante de int) si coloanele de legatura sa fie de acelasi tip si lungime.

    http://dev.mysql.com/doc/refman/5.0/...ric-types.html

    later edit: corectari
    Ultima modificare făcută de loco; 4th August 2008 la 15:06.

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Cumpar link-uri - plata foarte repede prin PayPal
    De Mihai Gianu în forumul Link-uri/Bannere
    Răspunsuri: 0
    Ultimul Post: 1st June 2009, 14:00
  2. random links
    De Mascka în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 0
    Ultimul Post: 22nd July 2007, 14:38
  3. Ia-l Repede Cat Mai E Pe Stoc
    De Cristian Mezei în forumul Bar, lobby...
    Răspunsuri: 8
    Ultimul Post: 26th May 2006, 09:54

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •