Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что влияет на скорость выполнения запроса? 
:(
    Опции темы
vngr6
Дата 8.2.2017, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2016

Репутация: нет
Всего: нет



Используется:
    Комп: 
       - 2,6Ггц
       - 6,0 Гб ОЗУ
       - Win 7x64
    
    Программы: 

        - OpenServer
        - Access - 2016
        - MySql 5.7 x 64
        - Odbc - mysql-connector-odbc-5.3.7-winx64

    Всё установлено и используется на одном компьютере

Характеристики таблицы:
- кол строк предполагается  - больше 1,0 млн 
- количество столбцов ~ 20 штук
        
        Таблица  (tbl8)
        Кол. строк  - 12 425 строк
        Объём  - 24,6 Мб

Код

        CREATE TABLE `tbl5` (
            `id` INT(11) NOT NULL AUTO_INCREMENT,
            `tbl` LONGTEXT NULL,
            `idsub` INT(20) NOT NULL,
            `pol_3` INT(11) NULL DEFAULT NULL,
            `pol_4` LONGTEXT NULL,
            `pol_5` LONGTEXT NULL,
            `pol_6` LONGTEXT NULL,
            `pol_7` LONGTEXT NULL,
            `pol_8` LONGTEXT NULL,
            `pol_9` LONGTEXT NULL,
            `pol_10` LONGTEXT NULL,
            `pol_11` LONGTEXT NULL,
            `pol_12` LONGTEXT NULL,
            `pol_13` LONGTEXT NULL,
            `pol_14` LONGTEXT NULL,
            `pol_15` LONGTEXT NULL,
            `pol_16` LONGTEXT NULL,
            `pol_17` LONGTEXT NULL,
            UNIQUE INDEX `id` (`id`)
        )
        COLLATE='utf8_general_ci'
        ENGINE=InnoDB
        AUTO_INCREMENT=240013
        ;



        В таблице тип полей "LONGTEXT" принят как предварительный, для проверки работы базы... Потом полям будут присвоены необходимые типы: LONGTEXT, TEXT, числа, даты и т.д. В полях: pol_9, pol_10, pol_11 используется много строчный текст более 1 000 символов. В остальных полях просто текст "ТЕКСТ _ ЗАПИСИ pol_n"
        
        
        
        
    Запрос
    Выполняем запрос в программе HeidiSql из таблицы tbl8

Код

    select*
    from
        `01tst`.`tbl8`
    where
        (
            `01tst`.`tbl8`.`idsub` = 2
        ) 


    Запрос выполняется  2 сек.
    Когда количество строк достигает более 100 000 - длительность выполнения запроса 40 сек.

Вопрос
Как уменьшить длительность выполнения запроса?
Что влияет на длительность выполнения запроса?



Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  444.jpg 1 007,73 Kb
PM MAIL   Вверх
Zloxa
Дата 8.2.2017, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(vngr6 @  8.2.2017,  16:55 Найти цитируемый пост)
Как уменьшить длительность выполнения запроса?

если предикат по idsub достаточно селективен и нет к тому противопоказаний - проиндексировать idsub
Цитата(vngr6 @  8.2.2017,  16:55 Найти цитируемый пост)
Что влияет на длительность выполнения запроса?

длительность выполнения операций, необходимых для его исполнения  smile 

Это сообщение отредактировал(а) Zloxa - 8.2.2017, 16:18


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
vngr6
Дата 8.2.2017, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2016

Репутация: нет
Всего: нет



Цитата(Zloxa @  8.2.2017,  16:12 Найти цитируемый пост)
если idsub достаточно селективен - проиндексировать его

Что такое "селективен"?
Там постоянно повторяются числа от 1 - 35
См. скрин  http://prntscr.com/e6286a
PM MAIL   Вверх
Akina
Дата 8.2.2017, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(vngr6 @  8.2.2017,  17:18 Найти цитируемый пост)
Там постоянно повторяются числа от 1 - 35

То есть селективность его порядка 3%, индексация по этому полю - разумна.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 8.2.2017, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(vngr6 @  8.2.2017,  17:18 Найти цитируемый пост)
Что такое "селективен"?

Селективным(высокоселективным) называется предикат, для которого коэффициент селективности низок. Коэффициент селективности рассчитывается как отношение количества записей, отобранных по предикату к исходному количеству записей. Наиболее селективен тот предикат, чей коэффициент селективности устремляется к нулю. Наименее селективен тот предикат, чей коэффициент селективности устремляется к единице. 

Цитата(vngr6 @  8.2.2017,  17:18 Найти цитируемый пост)
Там постоянно повторяются числа от 1 - 35

Здесь важно не то, сколько значений может принимать столбец, а сколько будет возвращено записей по конкретному значению. Если распределение данных таково, что по значению 2 будет отобрано 10 записей из 1кк, то предикат можно считать достаточно селективным и индексный доступ по этому предикату будет оправдан. Если по значению 2 будет возвращено 100к из 1кк, индексный доступ может оказаться не эффективным и, используя его запрос будет выполняться еще дольше.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1252 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.