Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2015, 14:23   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Вопрос по оптимизации запросов.

Имеется 2 таблицы MySql:
1)число записей 10~200
2)число записей 0~10 000

При организации запросов у меня 2 варианта:
1)Просто поиск по строковому полю (1-8 символов) в первой таблице, далее необходимые мне действия, далее запрос ко второй таблице на поиск по такому же строковому полю (1-8 символов) , после может быть либо добавление новой записи либо удаление всех записей из предыдущей выборки.
2)Сделать в первой таблице поле с уникальными номерами соответствующие строковому полю (1-8 символов)При этом порядок этих цифр (индексов не строго прямого направления не 1,2,3,4,5 а может быть хаотичным и даже с пропусками некоторых номеров). Во второй таблице вместо этого строкового полю (1-8 символов) такое же цифровое поле как в первой таблице и по нему поиск и остальные действия аналогичны.

Т.е. Вопрос в общем то в том будет ли значительная разница в производительности между поиском по строкам и цифрам на таком количестве записей.
Либо вообще мне делать специально для этого тесты приближенные к реальности?

Последний раз редактировалось Illusiony; 17.01.2015 в 14:26.
Illusiony вне форума Ответить с цитированием
Старый 17.01.2015, 15:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
будет ли значительная разница в производительности между поиском по строкам и цифрам на таком количестве записей
Если индексации нет или она неверно будет применена (Explain Plan покажет это) то да. Строки обрабатываются медленнее чисел.
Большего сказать не могу, так как полезных данных в описании кот наплакал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 18:29   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Да индексация будет присутствовать в первой таблице по строковому полю ( там записей не так много и все равно нужно будет сравнивать строковое значение при запросе)
А во второй таблице с вариантом 1 по строковому полю,
с вариантом 2 по числовому полю ( строкового поля тогда не будет вообще)

Вопрос в том что количество строк во второй таблице может быть совершенно разным от 0 до нескольких тысяч.

Как оценивать когда ( при скольких записях во второй таблице примерно) разница в производительности начинает сказываться?
Illusiony вне форума Ответить с цитированием
Старый 17.01.2015, 18:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Как оценивать когда ( при скольких записях во второй таблице примерно) разница в производительности начинает сказываться?
Она не будет меняться при изменении кол-ва строк. Производительность постоянна для одной и той же структуры, и не зависит от размера таблицы.
Узнать ее поможет EXPLAIN PLAN показав стоимость запросов. Если стоимость будет высока или вообще FULL FETCH то нужно бить тревогу - полный проход идет. Иначе при правильной подстройке индексации к запросам стоимость запроса будет одинакова что для таблицы с 10-ю записями что для таблицы с 10 лимонами записей - на то он и индекс .
Как бинарный поиск работает знаешь? Стоит эту степь освоить, тогда поймешь как СУБД будет запрос выполнять с использованием индекса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 20:57   #5
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Знаю пузырьковый метод поиска, это онже или нет не знаю
Illusiony вне форума Ответить с цитированием
Старый 17.01.2015, 21:01   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Впервые слышу...
Короче говоря - считай стоимость запроса. Только это даст тебе ответ на вопрос производительности.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 21:17   #7
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Да, спасибо.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с периодами и датами, вопрос по оптимизации RusikOk SQL, базы данных 2 02.08.2014 01:40
Не большой вопрос по оптимизации Shad0wF1rst Общие вопросы C/C++ 18 06.06.2013 15:42
Вопрос оптимизации работы с MS Word Mixasik Общие вопросы Delphi 1 15.06.2009 12:13
Вопрос оптимизации программы на С++ argrus Помощь студентам 9 29.03.2008 23:54