¿Rendimiento de mi estructura de enlaces permanentes?
3 respuestas
- votos
-
- 2010-10-29
Puede verificarmirandoeltamaño de la opción rewrite_rulesen labase de datos.Siespequeño (lo que creo que debería ser conestaestructura),noestá usando reglas detalladas.Porel contrario,si ve varias líneasporpáginaestática,está usando reglas detalladas ynoesbueno.
You can check by looking at the size of the rewrite_rules option in the database. If it's small (which I believe it should with this structure), you're not using verbose rules. By contrast, if you see several lines per static page, you're using verbose rules and it's not good.
-
lamentablemente ... hay varias líneasporpáginaestática GRIN.Así queprobablementeestano sea unabuenaestructura deenlacepermanente ... hmmmm ...estoexplica unmensaje deerror que recibí hace untiempo "Error debase de datos de WordPress. Tengo unpaquetemásgrande que 'max_allowed_packet",tuve que aumentaresta configuraciónen MySql.unfortunately... there are several lines per static page GRIN. So this is probably not a good permalink structure...hmmmm... this does explain an error message I got a while ago "WordPress database error Got a packet bigger than 'max_allowed_packet", I had to increase this setting in MySql.
- 0
- 2010-10-29
- edelwater
-
entonces denuevo ... si sigues agregandopáginas durante años,automáticamente obtendrásmax_allowed_packet sinimportar qué ... amenos que vuelvas aenlacespermanentesnobonitos ... (creo)entonces ...para serescalable durante lospróximos 30 años:) Probablementetendré que volver aenlacespermanentes queno seanbonitos.Yo creo que.then again... if you keep adding pages during years you will automatically get max_allowed_packet no matter what... unless you revert to non pretty permalinks... (i think) so... to be scalable for the next 30 years :) I will probably have to revert to non pretty permalinks. I think.
- 0
- 2010-10-29
- edelwater
-
Siempre que utilice reglasno detalladas,supágina,los archivos adjuntos y las reglas detipo depublicaciónpersonalizada songenéricas.Losenlacesbonitos sonbastante segurosen lapráctica,siempre que utilicen unaestructurano detallada.As long as you're using non verbose rules your page, attachment and custom post type rules are generic. So pretty links are quite safe in practice, so long as they're using a non verbose structure.
- 1
- 2010-11-11
- Denis de Bernardy
-
- 2010-11-12
Veto la respuesta aceptada.La complejidad de las reglas de reescrituranoes deningunamanera unamedida del rendimiento de labúsqueda de artículos.
Enparticular,parece que comenzar susenlacespermanentes connombres depublicacionesesmalo;consulte http://codex.wordpress.org/Using_Permalinks#Structure_Tags
Sin haberexaminadoel código de Wordpress,puedoimaginar que de algunamaneraindexan laspublicacionesjerárquicamente.Por lotanto,las variables utilizadasen losenlacespermanentes deben ordenarse deizquierda a derecha,desde la variablemásgeneral hasta lamásespecífica depublicación utilizada.Esta heurísticafavorecefuertemente losestándares año/mes/nombre o categoría/nombre.
I veto the accepted answer. The complexity of the rewrite rules is in no way a measure for the performance of article lookup.
In particular, it seems that starting your permalinks with post names is bad; see http://codex.wordpress.org/Using_Permalinks#Structure_Tags
Without having looked into Wordpress code, I can imagine that they somehow index posts hierarchically. Therefore, the variables used in permalinks should be ordered from left to right from the most general to the most post specific variable used. This heuristic strongly favors the standards year/month/name or category/name.
-
En realidad,se sabe y se confirma que `categoría/nombre` causaproblemas de rendimiento si hay unagran cantidad depáginas.Noestátan relacionado con la velocidad debúsqueda como con la deducción del objeto correctopara servir y la complejidad de las reglas de reescritura **es ** completamente relevante.`category/name` is actually known and confirmed as causing performance issues if large amount of pages is present. It is not as much related to speed of lookup as to deducing correct object to serve and complexity of rewrite rules **is** completely relevant.
- 1
- 2010-11-12
- Rarst
-
¿Puede dar una referencia de documento/códigoporfavor?Acabo de hojearel código `(wp-include/rewrite.php` y` wp-include/query.php`);Sibien se ve realmente horriblee innecesariamente complicado,parece quebásicamente laspartes se recopilane identifican y luego seinsertan directamenteen las consultas SQL.Sigo sinentenderpor quéesto debería llevarmástiempopara diferentespedidos.Pero cuando seejecuta la consulta debase de datos,se deben realizar varias combinaciones yel orden _aquí_ realmenteimporta.Creo recordar que MySQLesparticularmentemalopara optimizarel orden de unión.Can you give a doc/code reference please? I just skimmed the code `(wp-include/rewrite.php` and `wp-include/query.php`); while is looks really awful and unnecessarily complicated, it appears that basically the parts are collected and identified and then directly inserted into SQL queries. I still cannot see why this should take longer for different orders. But when the db-query is executed, several joins have to be performed and _here_ order really matters. I seem to remember that MySQL is particularly bad at optimising join order.
- 0
- 2010-11-12
- Raphael
-
Noestoy demasiadometidoen lateoría de DB,pero hay quemantener losproductospequeños.En cualquier caso,estopodría ser unerroren el sentido de quenoestáprogramadotaneficientemente como debería.I am not too deep into DB theory, but you have to keep products small. In any case, this might be a bug in the sense that it is programmed not as efficiently as it could be.
- 0
- 2010-11-12
- Raphael
-
Bueno ... leí que comenzar con losnombres de laspublicacionesfuemalo Y la otra respuestamuestra de hecho varias líneasporentrada (peroparami blog de 10.000publicaciones queejecutéen wordpress durante años,probablementeno hayamucho que cambie sinperdermuchas referencias).Noentendí completamente su respuesta aquí yel "veto",sinembargo,¿qué debo hacer cuando usted veta una respuesta?Well... i read that starting with post names was bad AND the other answer shows indeed multiple lines per entry (but for my 10.000 posts blog which i run on wordpress for years there is probably not much I change without losing a lot of references). I did not completely understand your answer here and the "veto" though, what do i need to do when you veto an answer????
- 0
- 2010-11-14
- edelwater
-
Soloescribí "veto",aquínoexistetalfunción.Mipuntoes que unmayortiempo deejecución se debe a que seejecutamás código o al DBMS.Dado quenopudeencontrarninguna razón que sugiriera que un orden diferente de componentes de URL debería aumentar la cantidad de códigoejecutado,afirmo que la razón radicaen las consultas de labase de datos.Pero contantaspublicaciones,tal vez cualquier orden sea lento _porquetienestantaspublicaciones_.¿Usas almacenamientoen caché?I only wrote "veto", there is no such function here. My point is that higher runtime is caused by more code being executed or the DBMS. Since I could not find any reason that would suggest that different order of URL components should increase the amount of code run, I claim the reason lies with the database queries. But with that many posts, maybe any order is slow _because you have so many posts_. Do you use caching?
- 0
- 2010-11-14
- Raphael
-
Err,note ofendas,pero vetar una respuesta sin haberestudiado afondoel código WPnotiene mucho sentido.FWIW,creé,arreglé y optimicé suficiente código WPen general,y código deenlacespermanentes WPen particular,para saber quéescala y quéno.;-) Las reglas detalladaspueden llevar a una configuraciónenormeen latabla de opciones,que luegonecesita serextraída de labase de datos (omemcached) yno serializadaen cada carga depágina.He visto queel último caso de uso llevó a un servidorbi-xeon con cargamoderada a un rastreoen 2006.Err, no offense, but vetoing an answer without having thoroughly studied the WP code doesn't make much sense. FWIW, I authored, fixed and optimized enough WP code in general, and WP permalinks code in particular, to know what scales and what doesn't. ;-) Verbose rules can lead to a huge setting in the options table, that then needs to be pulled from the database (or memcached) and unserialized on every page load. I've seen the latter use-case bring a moderately loaded bi-xeon server to a crawl in 2006.
- 0
- 2010-11-14
- Denis de Bernardy
-
Bueno,entonces deberíapoder darmás detalles que "no seaprolijo".¿Quées la verbosidad aquí?¿Importael orden de las variables?(¡ya queel Codex dice que sí y lo que usted dicenoexplicaestoen absoluto!) Además,siesta configuración debeextraerse una vezpor carga depágina,¿por qué aumentaelefecto cuantasmáspublicaciones haya?¿La deserializaciónno debería ser _rápida_?Pero,sí,ciertamente,estoypensandoen elnivel de lo quetiene sentido,noen lo queestáen el código.Notodoel códigotiene sentido.Well, then you should be able to give more specifics than "don't be verbose". What is verbosity here? Does the order of variables matter? (since Codex says it does and what you say does not explain this at all!) Furthermore, if this setting has to be pulled once per page load, why does the effect increase the more posts there are? Should deserializing not be _fast_? But, yes, certainly, I am thinking on the level of what makes sense, not what is in the code. Not all code makes sense.
- 0
- 2010-11-14
- Raphael
-
el Codex da "Algunas SUGERENCIAS" (ver Codex) ynoespecificael algoritmo completo.Sinembargo,sí apunta a http://ottopress.com/2010/category-in-permalinks-considered-harmful/y http://comox.textdrive.com/pipermail/wp-testers/2009-January/011097.htmltodosengeneral,existe unaespecie defricciónentre lasmejoresprácticas depiratería de URLen el campo de lainteracciónentre humanos y ordenadores yel rendimientoen el campo de lamejora del rendimiento.the Codex give "A few HINTS" (see Codex) and does not specificy the complete algorithm. It does however point to http://ottopress.com/2010/category-in-permalinks-considered-harmful/ and http://comox.textdrive.com/pipermail/wp-testers/2009-January/011097.html all in all there is a sort of friction between best practices of url hacking in the field of human computer interaction and performance from the field of performance improvement.
- 2
- 2010-11-14
- edelwater
-
Graciasporelpuntero ottopress.Parece que cambiar las convenciones demodo que cada URL depágina comience con `/page/` y cada URL depublicación con `/post/`,eliminando lafalta de ambigüedad.Deberíapoder hacerlo ustedmismo,agregandoeltextofijo a suestructura deenlacepermanente.Detodosmodos,probablemente sería unabuena decisión;¿Qué sucede sitengo unabarra depublicacionesen la categoría FOO y unabarra depágina quees una subpágina de FOO?Ambos serían abordadospor `/foo/bar/` asumiendoelesquema% category%/%postname%.¿O lasbabosas son únicasen elmundo?Thanks for the pointer ottopress. It appaers that changing conventions such that every page url would start with `/page/` and every post url with `/post/`, removing the unambiguity. You should be able to do this yourself, adding the fixed text to your permalink structure. This would probably be a good decision, anyways; what happens if I have a post BAR in category FOO and a page BAR that is subpage of FOO? Both would be addressed by `/foo/bar/` assuming the %category%/%postname% scheme. Or are slugs globally unique?
- 1
- 2010-11-14
- Raphael
-
Ah,y segúntengoentendido,notenermuchaspublicaciones rompeeste sistemaperotenermuchaspáginas,¿verdad?Dado que Wordpress comenzó como un sistema deblogs,estotenía sentido.Luego.Oh, and as I understand it not having many posts breaks this system but having many pages, right? Since Wordpress started out as blogging system, this made sense. Then.
- 0
- 2010-11-14
- Raphael
-
Sí,tenermuchaspáginas y archivos adjuntosesmalo con reglas detalladas,peronotenermuchaspublicaciones.La razónes que wp asume quees unapublicación amenos que una reglaespecifique lo contrario.Seintrodujeron reglas detalladas cuando wpintrodujo laspáginas,allápor 2005,paraevitar colisiones deenlacespermanentes conpublicaciones.Todavía hay variostickets (algunos conparches,otros sin) queintentanmejorar las cosasen estefrente.Yeah, having many pages and attachment is bad with verbose rules, but not having many posts. The reason is, wp assumes it's a post unless a rule specifies otherwise. Verbose rules were introduced when wp introduced pages, way back in 2005, in order to avoid permalink collisions with posts. There are still several tickets (some with patches, some without) that try to improve things on this front.
- 0
- 2010-11-14
- Denis de Bernardy
-
Ah,y,en caso de quenoesté claro qué son las reglas detalladas,laesencia deestoes,cadapágina,archivo adjunto ytipo depublicaciónpersonalizada,en lugar de usar unaexpresión regulargenéricaparaidentificartodos los datos deesetipo,termina con varias reglas y,por lotanto,regex -nuevamente,porpágina,archivo adjunto otipo depublicaciónpersonalizada.Estopor sí soloes suficientepara ralentizar las cosas significativamente,peroel cuello debotella realestá realmente relacionado contirar y desserializar las reglasen primer lugar.Oh, and, in case it's unclear what verbose rules are, the gist of it is, each page, attachment, and custom post type, instead of using a generic regex to identify all data of that type, ends up with several rules and thus regex -- again, per page, attachment, or custom post type. This alone is enough to slow things down significantly, but the real bottle neck is actually related to pulling and unserializing the rules in the first place.
- 0
- 2010-11-14
- Denis de Bernardy
-
Entonces,lo quepodría resolverse con una simple coincidencia deexpresiones regulares se ha convertidoen un desastre horrible soloporque algunas suposiciones delprincipio yano se aplican.¿Existe alguna razónen particularpor la queno se hayamodificadoel comportamiento?¿Miedo a que se rompan los vínculos antiguos?Enparticular,la distinciónentrepáginas ypublicacionesparece artificial hoyen día,peroesees otrotema.So what could be solved by simple regexp matching is bloated to a horrible mess just because some assumptions from the beginning do no longer apply. Is there a particular reason why the behaviour has not been changed? Fear because old links would break? In particular, the distinction between pages and posts seems artificial nowadays, but that is another topic.
- 0
- 2010-11-14
- Raphael
-
"motivoporel queno ha cambiado" -> http://core.trac.wordpress.org/search?q=permalinks"reason why not changed" --> http://core.trac.wordpress.org/search?q=permalinks
- 0
- 2010-11-15
- edelwater
-
618errores son una razónpara hacerlo completamentenuevo,noparamantenerlo.618 bugs are a reason to do it whole new, not to keep it.
- 0
- 2010-11-15
- Raphael
-
@Raphael: Sospecho quetodos aquíestarán de acuerdoen eso.Pero como sabemostodos los que realmente contribuimos conparches alnúcleo de WP,y como revelarán algunos deesos 618 resultados debúsqueda (notodos sonerrores,por cierto: observe losparches y conjuntos de cambiostambién),los desarrolladores delnúcleo de WPno lo hacen.cometafácilmente lasmejoras y las correcciones deerrores aportadasEnparticular cuando setrata demejorasnotriviales.@Raphael: I suspect everyone here will agree on that. But as each of us who actually contribute patches to WP core know, and as quite a few of those 618 search results will reveal (they're not all bugs, btw: notice the patches and changesets too), the WP core devs do not readily commit contributed bug fixes and enhancements. In particular when they're non-trivial enhancements.
- 0
- 2010-11-15
- Denis de Bernardy
-
Por supuesto.No quiere ser responsable de unainterrupción queni siquiera codificó ustedmismo.Pero obtenemosnuevasfuncionestodoeltiempo;tal vez unafunción congelada hasta que semanejen algunosproblemas (sospecho que haymás asperezasen WP),¿estáen orden?Of course. You do not want to be responsible for a break you did not even code yourself. But we get new features all the time; maybe a feature freeze until some issues (I suspect there are more rough edges in WP) are handled is in order?
- 0
- 2010-11-16
- Raphael
-
He leído la discusión sobreel rendimiento de diferentesenlacespermanentesen la lista de correo de wp hackers,ESTEforo yen Google.
Sinembargo,nopude deducir realmente si laestructura deenlacepermanente que heestado usando durante los últimos añosesbuena ono:
Esta combinación colocaelnombre de lapublicación directamente después de/y la combinación de año,mes y día lo hacemásexclusivo,ya quemuchosnombres depublicación llevanelmismonombre. La adición de htmles algo que heestado usando durante los últimos 10 añosen miblog (incluso antes de wordpress),por lo quees un legado.
No sé siestoesbuenopara lapermanencia omaloparael rendimiento,¿cómopuedo comprobarlo?
(Heestadoejecutandoelblog durantemás de 10 años y hay alrededor de 10.000publicaciones conmuchosenlaces)
enlaces:
http://codex.wordpress.org/Using_Permalinks
http://www.google.com/search?q=wordpress+ categoría +enlacepermanente + rendimiento
http://ottopress.com/2010/category-in-permalinks-considered -perjudicial/
http://lists.automattic.com/pipermail/wp- hackers/2010-October/035458.html