У меня есть следующая таблица с 261,045 записями.
Первый запрос довольно быстрый, но когда я ввожу или или в () на функции продукта, он значительно замедляет.EXPLAIN ANALYZE
SELECT COUNT(ProductID) AS ProductCount
FROM Products
WHERE ProductActive = 1
AND ProductFeature = 0;
-> Aggregate: count(Products.ProductID) (cost=6097 rows=1) (actual time=110..110 rows=1 loops=1)
-> Filter: ((Products.ProductFeature = 1) and (Products.ProductActive = 1)) (cost=3063 rows=30343) (actual time=0.154..108 rows=30866 loops=1)
-> Intersect rows sorted by row ID (cost=3063 rows=30343) (actual time=0.152..104 rows=30866 loops=1)
-> Index range scan on Products using ProductFeature over (ProductFeature = 1) (cost=9.51 rows=60686) (actual time=0.0332..11 rows=34832 loops=1)
-> Index range scan on Products using ProductActive over (ProductActive = 1) (cost=19.1 rows=123582) (actual time=0.117..78.8 rows=233603 loops=1)
< /code>
EXPLAIN ANALYZE
SELECT COUNT(ProductID) AS ProductCount
FROM Products
WHERE ProductActive = 1
AND (ProductFeature = 1 OR ProductFeature = 2);
-> Aggregate: count(Products.ProductID) (cost=12860 rows=1) (actual time=791..791 rows=1 loops=1)
-> Filter: ((Products.ProductFeature = 1) or (Products.ProductFeature = 2)) (cost=9576 rows=32842) (actual time=0.119..789 rows=35322 loops=1)
-> Index lookup on Products using ProductActive (ProductActive=1) (cost=9576 rows=123582) (actual time=0.118..768 rows=233635 loops=1)
< /code>
EXPLAIN ANALYZE
SELECT COUNT(ProductID) AS ProductCount
FROM Products
WHERE ProductActive = 1
AND ProductAdult IN(1,2)
-> Aggregate: count(Products.ProductID) (cost=12860 rows=1) (actual time=879..879 rows=1 loops=1)
-> Filter: (Products.ProductAdult in (1,2)) (cost=9575 rows=32842) (actual time=0.0717..876 rows=35323 loops=1)
-> Index lookup on Products using ProductActive (ProductActive=1) (cost=9575 rows=123586) (actual time=0.0707..860 rows=233641 loops=1)
< /code>
These fields are indexed...
PRIMARY KEY ProductID
KEY ProductActive
KEY ProductFeature
< /code>
Almost a second on 261,045 records? Have to get this thing running faster!
Подробнее здесь: https://stackoverflow.com/questions/796 ... d-on-index
Запрос MySQL замедляется, когда или представлен по индексу ⇐ MySql
Форум по Mysql
-
Anonymous
1751110823
Anonymous
У меня есть следующая таблица с 261,045 записями.
Первый запрос довольно быстрый, но когда я ввожу или или в () на функции продукта, он значительно замедляет.EXPLAIN ANALYZE
SELECT COUNT(ProductID) AS ProductCount
FROM Products
WHERE ProductActive = 1
AND ProductFeature = 0;
-> Aggregate: count(Products.ProductID) (cost=6097 rows=1) (actual time=110..110 rows=1 loops=1)
-> Filter: ((Products.ProductFeature = 1) and (Products.ProductActive = 1)) (cost=3063 rows=30343) (actual time=0.154..108 rows=30866 loops=1)
-> Intersect rows sorted by row ID (cost=3063 rows=30343) (actual time=0.152..104 rows=30866 loops=1)
-> Index range scan on Products using ProductFeature over (ProductFeature = 1) (cost=9.51 rows=60686) (actual time=0.0332..11 rows=34832 loops=1)
-> Index range scan on Products using ProductActive over (ProductActive = 1) (cost=19.1 rows=123582) (actual time=0.117..78.8 rows=233603 loops=1)
< /code>
EXPLAIN ANALYZE
SELECT COUNT(ProductID) AS ProductCount
FROM Products
WHERE ProductActive = 1
AND (ProductFeature = 1 OR ProductFeature = 2);
-> Aggregate: count(Products.ProductID) (cost=12860 rows=1) (actual time=791..791 rows=1 loops=1)
-> Filter: ((Products.ProductFeature = 1) or (Products.ProductFeature = 2)) (cost=9576 rows=32842) (actual time=0.119..789 rows=35322 loops=1)
-> Index lookup on Products using ProductActive (ProductActive=1) (cost=9576 rows=123582) (actual time=0.118..768 rows=233635 loops=1)
< /code>
EXPLAIN ANALYZE
SELECT COUNT(ProductID) AS ProductCount
FROM Products
WHERE ProductActive = 1
AND ProductAdult IN(1,2)
-> Aggregate: count(Products.ProductID) (cost=12860 rows=1) (actual time=879..879 rows=1 loops=1)
-> Filter: (Products.ProductAdult in (1,2)) (cost=9575 rows=32842) (actual time=0.0717..876 rows=35323 loops=1)
-> Index lookup on Products using ProductActive (ProductActive=1) (cost=9575 rows=123586) (actual time=0.0707..860 rows=233641 loops=1)
< /code>
These fields are indexed...
PRIMARY KEY ProductID
KEY ProductActive
KEY ProductFeature
< /code>
Almost a second on 261,045 records? Have to get this thing running faster!
Подробнее здесь: [url]https://stackoverflow.com/questions/79682033/mysql-query-slows-when-or-introduced-on-index[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия