Mysql
 sql >> база данни >  >> RDS >> Mysql

Изпълнение на MySQL на заявка за добавяне на колони в клауза where

@e4c5 е прав, че нито един от индексите няма да помогне с текущата заявка. Можете да започнете, като добавите следните индекси и промените заявката с допълнителни условия, така че индексите да се използват:

ALTER TABLE myTable
ADD INDEX(categoryId, value1),
ADD INDEX(categoryId, value2),
ADD INDEX(categoryId, value3),
ADD INDEX(categoryId, value4);

И актуализирайте заявката по този начин:

SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 9) AND (value2 <= 9) AND (value3 <= 9) AND (value4 <= 9) AND (value1 + value2 + value3 + value4) > 9;
SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 5) AND (value3 <= 5) AND (value4 <= 5) AND (value1 + value3 + value4) > 5;

Допълнителните условия помагат да се стесни броят на редовете за обработка. Добавянето на индекси към повече колони би ускорило това допълнително, но предлагам първо да опитате това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв вид хеш използва mysql?

  2. как да публикувам инсталатора на приложение за прозорци на c#

  3. Изпълнение на множество не-SELECT MySQL изрази като един команден текст в .NET

  4. Групиране по със заявка за избор на mysql union

  5. Как да получите достъп до MySQL с MySQL Root потребител