SELECT `m`.`tag_id`,`t`.*
FROM `w0z9v_contentitem_tag_map` AS m
INNER JOIN `w0z9v_tags` AS t
ON `m`.`tag_id` = `t`.`id`
WHERE `m`.`type_alias` = 'com_content.article'
AND `m`.`content_item_id` = 9162
AND `t`.`published` = 1
AND t.access IN (1,1,5
)
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to joomla-dev-cm...@googlegroups.com.
To post to this group, send an email to joomla-...@googlegroups.com.
Visit this group at http://groups.google.com/group/joomla-dev-cms.
For more options, visit https://groups.google.com/groups/opt_out.
In reviewing the Articles List query speed issues, Gary Mort noticed query times around 4000ms (4 seconds) -- just for the tag queries. The page takes about 18 seconds to load so there are likely other issues and Gary might recommend additional changes, but this is one that must be fixed.
If I recall correctly, there are values from the source tables that we need in those queries, such as title, author, dates, published status, etc. We could have accomplished this without using the ucm table,
but it was much, much easier to get everything from the one table. For example, ordering the tagged items by title or date would have been difficult otherwise (requiring UNION for each content table, for example).
Since we wanted to move in that direction anyway and combine the existing components into one table, that was the decision.
If you want to propose code to improve the query while preserving the existing functionality, that would be great.
At this point, I think we will move forward from where we are. If we could get help moving the existing components over to the UCM tables and drop the separate component tables, that would be great and will eliminate the duplicate content in the db.
--
You received this message because you are subscribed to a topic in the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/joomla-dev-cms/MWzBgYd2Lgw/unsubscribe.
To unsubscribe from this group and all of its topics, send an email to joomla-dev-cm...@googlegroups.com.
The feature-UCM branch in the joomla-projects repo was planned to be used for implementation.
https://github.com/joomla-projects/joomla-cms/tree/feature-ucm/administrator/components
At the moment I see the most recent UCM-code in Joomla 3.1: /libraries/cms/ucm
--
You received this message because you are subscribed to a topic in the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/joomla-dev-cms/MWzBgYd2Lgw/unsubscribe.
To unsubscribe from this group and all of its topics, send an email to joomla-dev-cm...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to joomla-dev-cm...@googlegroups.com.
As someone that's been waiting three months for a tested bug fix to get approved, I disagree.
Yes, I've followed the "Slow-loading..."-thread. And I just answered some related tags/UCM-related problems on the Dutch Joomlacommunity forum. I completely agree with you. In fact the way tags are implemented, using so much of the original UCM idea Louis proposed in december 2011, was accepted
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to joomla-dev-cm...@googlegroups.com.
It's fine to contact her. Just don't "voluntell" her to do a bunch of stuff. Mark
--
You received this message because you are subscribed to a topic in the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/joomla-dev-cms/MWzBgYd2Lgw/unsubscribe.
To unsubscribe from this group and all of its topics, send an email to joomla-dev-cm...@googlegroups.com.
Actually, those tables are an integral part of the functioning of tags. I would be interested to see a detailed approach for doing tags with the current functionality without a unified table. The only approach I could come up with was using a number of UNIONs, which I think we would agree would be much slower than the present implementation.
One could have done tags without a unified table and changed the functionality (for example, don't allow ordering and pagination across components). But I think, given the current functionality, the overall implementation is reasonable.
I would like to say that I strongly agree with Herman's earlier point. With any feature like tags, there are many reasonable ways to implement it. The person who writes the code gets to make a lot of decisions about that.
Actually, those tables are an integral part of the functioning of tags. I would be interested to see a detailed approach for doing tags with the current functionality without a unified table. The only approach I could come up with was using a number of UNIONs, which I think we would agree would be much slower than the present implementation.
--
Folks, please keep in mind also that this API needs to support three separate database drivers (MySQL, PostgreSQL, and SQL Server). What may optimize things for MySQL may break PostgreSQL compatibility, and that's an issue we've been dealing with in the CMS since the introduction of this level of database compatibility.
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to joomla-dev-cm...@googlegroups.com.
To post to this group, send an email to joomla-...@googlegroups.com.
Visit this group at http://groups.google.com/group/joomla-dev-cms.
For more options, visit https://groups.google.com/groups/opt_out.
Please pardon any errors, this message was sent from my iPhone.
--
You received this message because you are subscribed to a topic in the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/joomla-dev-cms/MWzBgYd2Lgw/unsubscribe.
To unsubscribe from this group and all of its topics, send an email to joomla-dev-cm...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to joomla-dev-cm...@googlegroups.com.
To post to this group, send an email to joomla-...@googlegroups.com.
Visit this group at http://groups.google.com/group/joomla-dev-cms.
For more options, visit https://groups.google.com/groups/opt_out.
I was thinking in an opposite direction for one detail for some time (not only for UCM's content_type table but also for ACL's assets table and probably idem for our "smart search").
For an integer value will have a slightly better performance than a 255 varchar, but if you would first need a lookup in a table to find the varchar-key, then the performance gain is anulled
. The varchar key is a "natural" key, known in some situations (a component knows its own name for instance).
So it depends on the context when that numerical key is quicker overall.
Often the performance gain of a numerical key is in retrieving the joined information and the trade off is to have a bit worse performance while storing that information.
That would plead for your proposed solution to use a numeric key, as the performance of retrieval of large amounts of information is more important than the performance of storing it: storage mostly involves a single item and a few tags.
Maybe we should discriminate between some internal use of a key and the use of a key in an API.
For the assets table we can limit the use of the asset_id to internal use and simpify the API of it. I'm not sure if this tags-thing is the same situation... figure it out.
Hope it is not too vague what I'm saying here. Will look for some concrete code-examples.
From the outside the problem of an asset_id versus an asset_name is in so far similar to this issue,that the asset_name is a "natural" key, similar to that type_alias. I think it should be used as much as possible for the API, for communication with everything outside the ACL (or the UCM whentalking about the type_alias). If internally things are going smoother with an integer-key, that is something inside the black box. What I see now, is that we are often using such an internal optimisation in the API. That troubles things a lot. It makes implementing ACL in your extensions (and custom extensions are my focus) needlessly complicated (specifying a parent asset_id etc.). The same holds for the UCM, hence my comparison. At the database-level it might be a totally unrelated problem, but at the API-level I see some relations.
->where($db->quoteName('ct.type_alias')
. ' = ' . $db->quote($type_alias))
->where($db->quoteName('ct.type_id')
. ' = ' . $db->quoteName('m.type_id'))
the asset_name is a "natural" key, similar to that type_alias. I think it should be used as much as possible for the API, for communication with everything outside the ACL (or the UCM when talking about the type_alias).
public function getTagIds($article_id, $type_alias)
->where($db->quoteName('ct.type_alias')
. ' = ' . $db->quote($type_alias))
If internally things are going smoother with an integer-key, that is something inside the black box.
What I see now, is that we are often using such an internal optimisation in the API. That troubles things a lot. It makes implementing ACL in your extensions (and custom extensions are my focus) needlessly complicated (specifying a parent asset_id etc.). The same holds for the UCM, hence my comparison. At the database-level it might be a totally unrelated problem, but at the API-level I see some relations.