I always use SPList.GetItems(SPQuery). According to this URL http://msdn.microsoft.com/en-us/library/bb687949.aspx#WorkingWithFoldersLists
I know PortalSiteMapProvider provides an automatic caching infrastructure for retrieving list data. The GetCachedListItemsByQuery method of PortalSiteMapProvider takes an SPQuery object as a parameter, and then checks its cache to determine whether the items already exist. If they do, the method returns the cached results. If not, it queries the list and stores the results in a cache. This approach works especially well when you are retrieving list data that does not change significantly over time.
The list in question has more than 40k items that will not change. If I only need one item from this list at any given time, do I use SPList.GetItems or PortalSiteMapProvider.GetCachedListItemsByQuery?
My SPQuery object
SPQuery objQuery = new SPQuery();
objQuery.Query = string.Format("<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>{0}</Value></Eq></Where>", entry);
objQuery.RowLimit = 1;
Is it okay to use GetCachedListItemsByQuery if the value in the where clause is different everytime?