kadanis wrote:
>
> Just wondering if anyone has any suggestions on this.
>
> I'm using Cake for a current project and the project lead is insisting
> we use FORCE INDEX on the queries and table joins.
>
>
Recently I've play with it a little. My workaround is:
1. Create my own datasource - (in my case extending DboMysql)
data source has two tasks:
its overrides read method and checks if model has set useIndex field
if (!empty($model->useIndex)) {
$this->useIndex = $model->useIndex;
}
return parent::read($model, $queryData);
and it overrides renderStatement method and if $model->useIndex field was
set, adding its value after table alias in select statement.
if (strtolower($type) == 'select' && !empty($this->useIndex)) {
$res = "SELECT {$fields} FROM {$table} {$alias} {$this->useIndex}
{$joins}
{$conditions} {$group} {$order} {$limit}";
} else {
$res = parent::renderStatement($type, $data);
}
$this->useIndex = null;
return $res;
2. Setting up model field whitch contains sql part of use index, force index
or ignore index
eg in controller:
$this->Task->useIndex = 'IGNORE INDEX(ind_usr_id)';
$this->paginate = array(
'fields' => array('Task.id', 'Task.name','User.id', 'User.name'),
'order' => 'Task.id',
'limit' => 10
);
$this->paginate('Task');
To make it work, you should also set this datasource as datasource for your
model.
In fact, this is rather experimental and I didn't use it in production
environment yet :), but mayby it can help you.
--
Przemoo
--
View this message in context:
http://cakephp.1045679.n5.nabble.com/Using-USE-INDEX-or-FORCE-INDEX-in-Model-find-relationships-tp3281552p3300205.html
Sent from the CakePHP mailing list archive at Nabble.com.
Check out the new CakePHP Questions site http://cakeqs.org and help others with
their CakePHP related questions.
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en