Skip to content

Commit a02a639

Browse files
ctresvauxp6marien-probesys
authored andcommitted
chore: Add indexes on (Out)Msgs and (Out)MsgRcpt
1 parent 1121760 commit a02a639

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20251201164230 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add indexes to msgs and msgrcpt';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql('CREATE INDEX msgrcpt_content_idx ON msgrcpt (content)');
20+
$this->addSql('CREATE INDEX msgrcpt_ds_status_idx ON msgrcpt (ds, status_id)');
21+
$this->addSql('CREATE INDEX msgrcpt_bl_status_idx ON msgrcpt (bl, status_id)');
22+
$this->addSql('CREATE INDEX msgrcpt_status_content_idx ON msgrcpt (status_id, content)');
23+
$this->addSql('CREATE INDEX msgrcpt_filter_idx ON msgrcpt (rid, bspam_level, ds, bl, content, status_id)');
24+
$this->addSql('CREATE FULLTEXT INDEX msg_fulltext_idx ON msgs (from_addr, subject, message_id)');
25+
$this->addSql('CREATE INDEX msgrcpt_content_idx ON out_msgrcpt (content)');
26+
$this->addSql('CREATE INDEX msgrcpt_ds_status_idx ON out_msgrcpt (ds, status_id)');
27+
$this->addSql('CREATE INDEX msgrcpt_bl_status_idx ON out_msgrcpt (bl, status_id)');
28+
$this->addSql('CREATE INDEX msgrcpt_status_content_idx ON out_msgrcpt (status_id, content)');
29+
$this->addSql('CREATE INDEX msgrcpt_filter_idx ON out_msgrcpt (rid, bspam_level, ds, bl, content, status_id)');
30+
$this->addSql('CREATE FULLTEXT INDEX msg_fulltext_idx ON out_msgs (from_addr, subject, message_id)');
31+
}
32+
33+
public function down(Schema $schema): void
34+
{
35+
$this->addSql('DROP INDEX msg_fulltext_idx ON msgs');
36+
$this->addSql('DROP INDEX msg_fulltext_idx ON out_msgs');
37+
$this->addSql('DROP INDEX msgrcpt_content_idx ON msgrcpt');
38+
$this->addSql('DROP INDEX msgrcpt_ds_status_idx ON msgrcpt');
39+
$this->addSql('DROP INDEX msgrcpt_bl_status_idx ON msgrcpt');
40+
$this->addSql('DROP INDEX msgrcpt_status_content_idx ON msgrcpt');
41+
$this->addSql('DROP INDEX msgrcpt_filter_idx ON msgrcpt');
42+
$this->addSql('DROP INDEX msgrcpt_content_idx ON out_msgrcpt');
43+
$this->addSql('DROP INDEX msgrcpt_ds_status_idx ON out_msgrcpt');
44+
$this->addSql('DROP INDEX msgrcpt_bl_status_idx ON out_msgrcpt');
45+
$this->addSql('DROP INDEX msgrcpt_status_content_idx ON out_msgrcpt');
46+
$this->addSql('DROP INDEX msgrcpt_filter_idx ON out_msgrcpt');
47+
}
48+
}

app/src/Entity/BaseMessage.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use App\Entity\Maddr;
1010

1111
#[ORM\MappedSuperclass]
12+
#[ORM\Index(name: 'msg_fulltext_idx', columns: ['from_addr', 'subject', 'message_id'], flags: ['fulltext'])]
1213
class BaseMessage
1314
{
1415
#[ORM\Column(name: 'partition_tag', type: 'integer', nullable: false)]

app/src/Entity/BaseMessageRecipient.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
use Doctrine\DBAL\Types\Types;
1010

1111
#[ORM\MappedSuperclass]
12+
#[ORM\Index(name: 'msgrcpt_content_idx', columns: ['content'])]
13+
#[ORM\Index(name: 'msgrcpt_ds_status_idx', columns: ['ds', 'status_id'])]
14+
#[ORM\Index(name: 'msgrcpt_bl_status_idx', columns: ['bl', 'status_id'])]
15+
#[ORM\Index(name: 'msgrcpt_status_content_idx', columns: ['status_id', 'content'])]
16+
#[ORM\Index(name: 'msgrcpt_filter_idx', columns: ['rid','bspam_level', 'ds', 'bl','content','status_id'])]
1217
class BaseMessageRecipient
1318
{
1419
#[ORM\Column(name: 'partition_tag', type: 'integer', nullable: false)]

0 commit comments

Comments
 (0)