Merge pull request #6180 from mozilla/fix/issue-6064

fix(admin): split query for index usage
This commit is contained in:
Ben Bangert 2020-08-10 14:45:05 -07:00 коммит произвёл GitHub
Родитель b7924f18ef 2f2c409f04
Коммит 41da2dbbdc
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -54,13 +54,14 @@ export class AccountResolver {
@FieldResolver() @FieldResolver()
public async emailBounces(@Root() account: Account) { public async emailBounces(@Root() account: Account) {
const uidBuffer = uuidTransformer.to(account.uid); const uidBuffer = uuidTransformer.to(account.uid);
const subquery = Emails.query() // MySQL Query optimizer does weird things, use separate queries to force index use
const emails = await Emails.query()
.select('emails.normalizedEmail') .select('emails.normalizedEmail')
.where('emails.uid', uidBuffer); .where('emails.uid', uidBuffer);
const result = await EmailBounces.query().where( const result = await EmailBounces.query().where(
'emailBounces.email', 'emailBounces.email',
'in', 'in',
subquery emails.map((x) => x.normalizedEmail)
); );
return result; return result;
} }