|
Модераторы: skyboy |
|
vngr6 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 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 Мб
В таблице тип полей "LONGTEXT" принят как предварительный, для проверки работы базы... Потом полям будут присвоены необходимые типы: LONGTEXT, TEXT, числа, даты и т.д. В полях: pol_9, pol_10, pol_11 используется много строчный текст более 1 000 символов. В остальных полях просто текст "ТЕКСТ _ ЗАПИСИ pol_n" Запрос Выполняем запрос в программе HeidiSql из таблицы tbl8
Запрос выполняется 2 сек. Когда количество строк достигает более 100 000 - длительность выполнения запроса 40 сек. Вопрос Как уменьшить длительность выполнения запроса? Что влияет на длительность выполнения запроса? Присоединённый файл ( Кол-во скачиваний: 3 ) 444.jpg 1 007,73 Kb |
||||
|
|||||
Zloxa |
|
|||
Чо? Профиль Группа: Завсегдатай Сообщений: 3470 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
если предикат по idsub достаточно селективен и нет к тому противопоказаний - проиндексировать idsub длительность выполнения операций, необходимых для его исполнения Это сообщение отредактировал(а) Zloxa - 8.2.2017, 16:18 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
vngr6 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.10.2016 Репутация: нет Всего: нет |
||||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 453 |
То есть селективность его порядка 3%, индексация по этому полю - разумна. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
Чо? Профиль Группа: Завсегдатай Сообщений: 3470 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Селективным(высокоселективным) называется предикат, для которого коэффициент селективности низок. Коэффициент селективности рассчитывается как отношение количества записей, отобранных по предикату к исходному количеству записей. Наиболее селективен тот предикат, чей коэффициент селективности устремляется к нулю. Наименее селективен тот предикат, чей коэффициент селективности устремляется к единице. Здесь важно не то, сколько значений может принимать столбец, а сколько будет возвращено записей по конкретному значению. Если распределение данных таково, что по значению 2 будет отобрано 10 записей из 1кк, то предикат можно считать достаточно селективным и индексный доступ по этому предикату будет оправдан. Если по значению 2 будет возвращено 100к из 1кк, индексный доступ может оказаться не эффективным и, используя его запрос будет выполняться еще дольше. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |