Kā panākt, ka linki veidojas nevis /user?id=1, bet gan /user/1 ?
Un vai ir prāta darbs komentāru skaitu attēlot ar SELECT * FROM `komenti` WHERE `read_id` = '$read->id'
un tad izvelkot num_rows?
S J miniblogs
- 0
S J 09.12.2012. 00:37
- 0
Pirmo atradu, iekopēšu, gadijumā, ja kādu citu šis interesē.
http://www.9lessons.info/2009/11/pretty-urls-with-htaccess-file.html - 0
BTW, ja runa ir par relatīvi lieliem datu apjomiem, tad vēl efektīvāk būtu uztaisīt "counter cache", tas ir - glabāt komentāru skaita ailīti pie katra raksta un updatot kad tiek pievienots/dzēsts komentārs. Tad nevajag tramdīt komentāru tabulu rādot rakstu sarakstu, un pat atverot rakstu var iztikt bez kverija uz komentāru tabulu, ja jau ir zināms, ka komentāru nav. To gan tev šobrīd nevajag, bet nu tā, zināšanai
Piemēram exa miniblogos tā ir uztaisīts.- 0
Cik nanosekundes tas ietaupa?
- 0
Nu pie 2 miljoniem ierakstu, viens tāds count() aizņem ap 0.001 sekundi jeb 1 000 000 nanosekundes.
Uz katras lapas ielādi vajag kā minimums 7 tādus kverijus = 0.007Ņemot vērā, ka vidēji exā visa lapa ielādējas kādās 0.02 - 0.05 sekundēs, tas ir samērā daudz.
Pie 100 000 ielādēm dienā (ar automātisko refresh jaunākajiem miniblogiem vispār ir vairāk):
100000*0.007 - 700 sekundes jeb 11 minūtes, jeb 699 600 000 000 nanosekundes no mysql servera darbības katru dienu. - 0
Neizklausās nemaz tik slikti.
Cik tad aizņemtu pārbraukt pāri 100 minibloga ierakstiem? 0.1 (izmanto taču to pašu count() gan izmantojot counter cache, gan arī neizmantojot?) (vai arī counter cache tikai nolasa ieraksta vērtību, ja tā, tad cik tas aizņem?) (es nezinu datubāzes) ? - 0
Izskatās, ka tik daudz nav.
Izmantojot cache:SELECT * FROM `junk` LIMIT 100
Showing rows 0 - 29 ( 100 total, Query took 0.0009 sec)
Neizmantojot cache:SELECT `junk`.*, count(`miniblog`.`id`) as count_posts FROM `junk`, `miniblog` WHERE `miniblog`.`parent` = `junk`.`id` AND `miniblog`.`removed` = 0 AND `miniblog`.`type` = 'junk'
GROUP BY `junk`.`id`
LIMIT 100
(Query took 0.0089 sec)Ja katru no 100 count kverijiem taisītu atsevišķi tad gan būtu krietni ilgāk.
Ielogojies vai izveido profilu, lai komentētu!