【发布时间】:2015-10-24 10:14:06
【问题描述】:
我有一个拥有超过 10 万条记录的实体,并且对该表的查询变得越来越慢。
这是一个与其他两个相关的实体,我想知道是否可以索引这两个字段,因为所有查询都被这两个字段中的任何一个过滤。
我搜了谷歌也没有说清楚。
公司是这样的:
class Ticket
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Acme\DemoBundle\Entity\User", inversedBy="tickets")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
**/
private $user;
/**
* @ORM\ManyToOne(targetEntity="Amce\DemoBundle\Entity\Down")
* @ORM\JoinColumn(name="related_id", referencedColumnName="id")
**/
private $fieldRelated;
/**
* @ORM\ManyToOne(targetEntity="Acme\DemoBundle\Entity\Up", inversedBy="tickets")
* @ORM\JoinColumn(name="related2_id", referencedColumnName="id")
**/
private $fieldRelated2;
/**
* @var string
*
* @ORM\Column(name="date", type="datetime")
*/
private $date;
我想为字段“fieldRelated”和“fieldRelated2”编制索引。
试试这个:
* indexes={
* @ORM\Index(name="related_idx", columns={"fieldRelated"})
* }
但控制台会抛出该错误:
[Doctrine\DBAL\Schema\SchemaException]
表 'Ticket' 上没有名称为 'fieldRelated' 的列。
【问题讨论】:
-
用related_id替换字段相关
标签: symfony doctrine-orm