powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорение LIKE '%str%' в версии 5.7
121 сообщений из 121, показаны все 5 страниц
Ускорение LIKE '%str%' в версии 5.7
    #39091573
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а знете прикол
18325072
просто поставил на сервак 5.7.9 ...... базы подключились автоматом...
запросы стали выполняться ....6 сек !!!!!!!!
это в 10 лямах!!!! вместо 60 сек
и без innodb_buffer_pool_size = 512M
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091575
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
      SELECT
        COUNT(*)
      FROM pass;


12 сек (10 000 000 записей)
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091577
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи без innodb_buffer_pool_size = 512MТак оно по дефолту 128 МБ, что уже весьма неплохое значение.

А в целом - хорошее известие.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091579
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
в 10 раз даже очень....
я фигею просто
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091581
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmiksoft,
в 10 раз даже очень....
я фигею простоЕсли запрос вида SELECT * FROM mytable WHERE field LIKE '%str%' LIMIT 5, то могло и просто повезти.
А вот если без LIMIT, то да, результат потрясающий.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091582
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может потому как я поставил 64 раряда , а стояла 32?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091583
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSELECT * FROM mytable WHERE field LIKE '%str%' LIMIT 5
вместо str набор буковок бессмысленный, селект ничего не возвращает, т.е. сканирует всю таблицу
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091587
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одно поле было latin1 (не участвовало в поиске) переправил на utf8
переписывало минут 15...
запустил тестовый запрос
Код: sql
1.
2.
3.
4.
5.
    SELECT SQL_SMALL_RESULT
      pass.id,
      pass.name
    FROM pass
    WHERE pass.name LIKE '%вап%' LIMIT 5;



отрабатывал 1мин.
повторный запуск 6сек
изменил
innodb_buffer_pool_size = 512M
4 сек!!!
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091588
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выделил в отдельный топик, чтобы в исходном не оффтопить.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091589
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. главное всё держать в памяти
по индикатору (на миртуалке на vb) видно запись/чтение
четко идет сплошное чтение при первом выполнении, при следующем -просто работа с памятью.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091591
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
ну там бы ссылку поставить, чтоб о разнице показать
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091600
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запустил из dbForge
оптимизацию (не знаю что это делает в реале)
выдало
Код: plaintext
1.
1	test.pass	optimize	note	Table does not support optimize, doing recreate + analyze instead
2	test.pass	optimize	status	OK
перегрузил mysql
первый запрос - 5сек
потребление памяти не возросло!!!
если до "оптимизации" добавлялось к занятой до 500М.....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091602
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в последних опытах
innodb_buffer_pool_size = 1512M

если есть идеи как ещё помучить - предлагайте, пока есть возможность проверю
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091606
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: sql
1.
2.
3.
      SELECT
        COUNT(*)
      FROM pass;


12 сек (10 000 000 записей)


Детский сад, а не топик...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091607
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа может потому как я поставил 64 раряда , а стояла 32?

Если ты поставил 64, значит у тебя система 64 битная, раз оно поставилось.
А раз так, ставить туда 32 бита -- верх идиотизма...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091617
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivвадяа может потому как я поставил 64 раряда , а стояла 32?

Если ты поставил 64, значит у тебя система 64 битная, раз оно поставилось.
А раз так, ставить туда 32 бита -- верх идиотизма...

вадя, я особенно не секу в админских делах, потому что я кодер, программный архитектор и организатор работы программистов, но если Зив говорит правду, то для восстановления научной справедливости, вам стоит провести все ваши замеры на 64-битной сборке той старой версии, которая вам давала 60 секунд на latin, а сейчас стала давать 6 сек на юникоде.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091642
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
я писал что поле латин не используется в селекте. замена латин на ютф бвла сделпна для того чтоб таблица была обработана новой версией. по уму , стоило б вернутся не 32 новых и сравнить, но т.к. никто раньше не давл намеков о возможной разнице в скорости и никогда не возникал вопрос о разрядности базы, я думаю, что это излишне.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091643
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
а ты интересовался какой разрядности у тебя сервера и базы там?

если кто хочет сравнить. - исходники данных могу дать. всего 84м
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091673
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, просто у меня за много лет выработался какой-то внутренний страх, что если на ровном месте скорость программы вырастает в 10-100 раз, то скорее всего, где-то просто закралась ошибка эксперимента. Просто при всем вашем энтузиазме, мне слабо верится, что 5.7. при тех же самых условиях работает быстрее 5.5/5.6. Если бы это было так, то интернет давно бы уже взорвался лавиной статей с заголовками MYSQL 5.7 is 10x FASTER!!!
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091685
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
есть где повторить мои наблюдения?
я тоже не поверил....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091693
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесть где повторить мои наблюдения?

на 64-битной версии мускула, который у вас дает 60 сек
например, если у вас 60 секунд дает мускул 5.5.3, то поставьте его 64-битную версию на ту же самую тачку, сделайте те же самые настройки, замените латин на юникод и проверьте будет давать 60 секунд или 8 секунд.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091696
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixвадяесть где повторить мои наблюдения?
на 64-битной версии мускула, который у вас дает 60 сек
например, если у вас 60 секунд дает мускул 5.5.3, то поставьте его 64-битную версию на ту же самую тачку, сделайте те же самые настройки, замените латин на юникод и проверьте будет давать 60 секунд или 8 секунд.
64 -5.7.9 - 4-5 сек
32 - 5.6 - 60 сек
я хочу исключить свою субъективность...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091715
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя64 -5.7.9 - 4-5 сек
32 - 5.6 - 60 сек
я хочу исключить свою субъективность...

Мысль Зива была в том, что

64 -5.7.9 - 4-5 сек
32 - 5.6 - 60 сек
64 - 5.6 - 6 сек
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091772
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как узнать битность установленной базы?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091795
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа как узнать битность установленной базы?

в командной строке выполните c ключом --version и в ответе будет маркер битности

Код: sql
1.
2.
> mysql --version
mysql Ver 14.14 Distrib 5.6.24-72.2, for Linux (x86_64) using Editline wrapper
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091802
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
ну значит я ошибся.....
первоначильные пробы были на ....64 битах
поднял копию виртуалки, произвел тесты аналогичные тесты - запрос выполняется 36 сек
эта же цифрабыла и первоначально , только она чередовалась с 1 минутой(но потом остановилась н 1минуте) -
чем объяснить такое - хз...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091809
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, ну, фиг знает короче... главное, что вы поставили 5.7, у вас получилась высокая скорость и это главное, а все остальное - фиг с ним!
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091813
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
в общем-то радоваться нечему, установка не debian7 вынуждает почти полностью апгрейдить систему...
так что настоящего использования 5.7.9 ещё ждать и дать....
врядли кто будет боевые сервера так апгрейдить
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091816
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

)))
перестань заниматься ерундой...
я уже под эту бредятину создал тестовую таблицу 3млн записей поле varchar(50) забито англ алфавитом в случайном порядке
проверял 555 раз
индекс НЕ ИСПОЛЬЗУЕТСЯ... и никогда не будет (можно подождать версии mysql 7)
в каких-то случаях при LIKE %выражение_До_4х_символов% запрос работает меньше 1сек. (символы выбираю наугад)
может быть срабатывает какой-то алгоритм, упомянутый выше
но это не ПРАВИЛО. Никаких ускорений быть не может.
64бит от х32 отличается только тем что система->программы могут использовать более 4Г ОЗУ
все что иногда видите, принимая за ускорение - это чистая случайность...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091825
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
ну почему не проверять? есть время , есть возможность ...
есть спортивный интерес
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091839
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

это НЕРЕАЛЬНО, воспримите как бытность
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091846
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяLumix,
в общем-то радоваться нечему, установка не debian7 вынуждает почти полностью апгрейдить систему...
так что настоящего использования 5.7.9 ещё ждать и дать....
врядли кто будет боевые сервера так апгрейдить

У нас все боевые проекты вообще работают на 5.0.27 - это релиз осени 2006 года и <censored>, потому что мы все равно пользуемся лишь малюсеньким сабсетом из всех существующих возможностей сервера, и этот сабсет расширять не собираемся по организационным причинам.

Все эти новые плюшки имеют смысл только для хайлоадов, где увеличение эффективности запросов на 20% может сэкономить 10 лямов в месяц, а в наших проектах +/- 30% эффективности вообще всем посрать. Когда что-то начинает тормозить в 5-10 раз, тогда есть смысл разбираться, но каждый раз когда проводили разборки подобных случаев всегда находилось решение как можно на том же самом сабсете сделать все быстрее и проще.

Из свежих примеров.
Был очень жирный и сложный селект * групп, чем-то похожий на формирование списка тем форума из списка сообщений с сортировкой по дате, чтобы самые свежие были сверху. Сам запрос лимитированный на 30-50 позиций, а вот если получать count(*) на этот запрос, то получается очень жирный, а если втыкать SQL_CALC_FOUND_ROWS / found_rows() то получится вообще запрос без индексов.

В итоге я разобрался в ситуации и властью данной мне штатом Аляса принял решение - для всех групповых запросов больше никогда не делаем count(*), а вместо кнопочек страниц делаем две кнопки - вперед, назад и номер текущей страницы.

То есть может быть такая ситуация, что пользователь видит 20 строчек, переходит на вторую страницу, а там пусто, а если он видит на первой странице 50 строчек, на второй 50 строчек, то в итоге он не сможет сразу узнать сколько всего же в базе сгруппированных строчек.

Но если пользователю очень приспичит, то он может в стиле детской игры на угадывание чисел вводить номера страниц и методом больше меньше угадать число групп. Открыл 30 страницу там есть элементы. Открыл 80 страницу, там пусто, открыл 60 страницу там есть, открыл 70 страницу там пусто. И так выяснил, что элементы заканчиваются на 63 странице. 630 * 10 = 6300 / 2 = 3150 групп.

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

А то я смотрю иногда какие тут темы создают на форуме 18346767 18352742 и думаю, то ли это люди подневольные работают в каких-то то ли банках, то ли взяли консалтинговый проект какого-то крупного завода, то ли просто это какие-то мазохисты... я когда вижу такие портянки, то у меня все внутри просто сжимается от боли...

У меня нет точной метрики, но по ощущениям у нас в среднем sql запрос занимает 3-4 строчки, а самые длинные строчек 10-12, а тут люди присылают какие-то sql-ные портянки на 3 экрана...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091855
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты почитай на форуме mssql - там 5-6 экраном норма
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091868
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяты почитай на форуме mssql - там 5-6 экраном норма

Да, я заходил туда однажды, у меня сжалось очко, я очень быстро свалил от туда, и больше к ним не захожу.

И я глубоко в своем сердце по-черному радуюсь, когда получаю новости типа Stack Overflow переехали с винды на никсы.))))
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091871
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixвадяты почитай на форуме mssql - там 5-6 экраном норма

Да, я заходил туда однажды, у меня сжалось очко, я очень быстро свалил от туда, и больше к ним не захожу.

И я глубоко в своем сердце по-черному радуюсь, когда получаю новости типа Stack Overflow переехали с винды на никсы.))))
дак такие большие запросы не означают, что это плохо.
просто там подход другой - разделение процессов, база может очень много и быстрее сделать.
я постоянно наблюдаю как многие делают циклы на java или php а данные дерут в каждом цикле
mssql-щики заставляют делать это всё не сервере и с него получают только готовый результат. они используют возможности сервера под 100%, остальной народ процентов на 20....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091885
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

)))
перестань заниматься ерундой...
я уже под эту бредятину создал тестовую таблицу 3млн записей поле varchar(50) забито англ алфавитом в случайном порядке
проверял 555 раз
индекс НЕ ИСПОЛЬЗУЕТСЯ... и никогда не будет (можно подождать версии mysql 7)
в каких-то случаях при LIKE %выражение_До_4х_символов% запрос работает меньше 1сек. (символы выбираю наугад)
может быть срабатывает какой-то алгоритм, упомянутый выше
но это не ПРАВИЛО. Никаких ускорений быть не может.
64бит от х32 отличается только тем что система->программы могут использовать более 4Г ОЗУ
все что иногда видите, принимая за ускорение - это чистая случайность...
ну можешь как угодно спорить и как угодно называть...
сделал проверку и до и после
всё 64 бита
5.6.21 - 35 сек
5.7.9 - 5 сек
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091887
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не знаю что последняя и как использует, я вижу повторяемость результата
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091895
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядак такие большие запросы не означают, что это плохо.

я про другое...
например, я борд не катаю, и поэтому мне не требуется покупать снарягу, гоупро и путевку в геш
точно так же и большие запросы
я просто не хочу связывать свою жизнь с проектами, которые работают на портянках sql-запросов
я не про плохо/хорошо, а про стиль труда и жизни

вадяmssql-щики заставляют делать это всё не сервере и с него получают только готовый результат. они используют возможности сервера под 100%, остальной народ процентов на 20....

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

например, в 5.7 появилась новая "горизональная" возможность - json поля
не факт, что мы будем её юзать
и от того, что мы её не юзаем, мы сильно ничего не теряем

но совсем другая песня, когда мы не использовали select count(*), а вместо этого выполняли запрос целиком, данные не получали, но брали служебный ответ сколько он выбрал полей. Вот это уже глубинная возможность, которую глупо не использовать

это я к чему клоню

я убежден, что с точки зрения архитектуры систем (не только компьютерных, но и вообще любых систем) и с точки зрения организации, использование возможностей системы за пределами ядра парето, приводит к резкому снижению маржинальной эффективности, и как следствие к смерти системы из-за существенно превышения затрат по жизнеобеспечению системы над размером внешнего полезного эффекта самой системы

поэтому задача руководителя-организатора подобрать такой сабсет инструментов, чтобы система тратила Х, а внешний результат все время был бы выше 2Х, 5Х или даже 10Х. Когда система тратит Х и приносит Х, то получается, что система существует только как вещь в себе, а если система тратит Х, а приносит 0.5Х, тогда она ещё и вредительством занимается

я в этом подходе вижу как бы секрет вечной молодости, а sql-портянки - это с моей точки зрения как бы дорога к смерти, хотя я и отлично понимаю, что она неизбежна, когда речь идет о крупных и сверхкрупных проектах
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091903
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
вот последннее время я убеждаюсь в тм что мне очень повезло, что в своё время пришлось поработать на access...
подход к системам в которых используются базы очень хорошо там устроен, как бы этот акс не хаяли и не притесняли.

авторя убежден, что с точки зрения архитектуры систем (не только компьютерных, но и вообще любых систем) и с точки зрения организации, использование возможностей системы за пределами ядра парето, приводит к резкому снижению маржинальной эффективности, и как следствие к смерти системы из-за существенно превышения затрат по жизнеобеспечению системы над размером внешнего полезного эффекта самой системы

поэтому задача руководителя-организатора подобрать такой сабсет инструментов, чтобы система тратила Х, а внешний результат все время был бы выше 2Х, 5Х или даже 10Х. Когда система тратит Х и приносит Х, то получается, что система существует только как вещь в себе, а если система тратит Х, а приносит 0.5Х, тогда она ещё и вредительством занимается
вот эти слова там очень хорошо реализуются.
и этот подход позволяет реализовывать много чего совершенно "не стандартно" с точки зрения стандарного программирования...
и получается это чтобы система тратила Х, а внешний результат все время был бы выше 2Х, 5Х или даже 10Х.
и это приминимо к mysql.
то что счас используют из возможностей баз данных (mysql, mssql и пр.) это мизерный процент их возможности, и это говорит о плохом знании этой области.
я работал с mssql и его возможности при использовании хранимок настолько огромны, что " или даже 10Х. " не придел..
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091905
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор, а sql-портянки - это с моей точки зрения как бы дорога к смерти,

дорога к смерти перекладывание операций с данными на плечи инструмента не предназначенного для этого. это как уголь перевозить на кабриолете....
написать портянку на php, си, java - это круто , написать на sql в половину меньшую портянку и выполняющую тож самое - это некруто.....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091914
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c mssql никогда не работал, а на аксессе написал много чего для реальных заказчиков, но это было давно, когда аксесс ещё был Access 97

вадянаписать портянку на php, си, java - это круто , написать на sql в половину меньшую портянку и выполняющую тож самое - это некруто .....

На мой взгляд критерий выбран ошибочно...
круто/некруто - это больше из мира конференций по программированию или иного сборища гиков...

в наших проектах в условиях очень часто изменяемых требований заказчиков используются другие критерии

1) насколько просто проводить изменения и отладку (скорость создания готового решения задачи заказчика)

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

1) + 2) = насколько легко перекидывать задачи от одного исполнителя другому и насколько легко все это контроллировать

Именно поэтому я всякие супер-пупер штучки из недр баз так опасны для живой разработки и их есть смысл использовать на
а) высоконагруженных системах
б) с низкой изменяемостью (либо с огромным запасом времени на изменения)
в) с серьезными бюджетами (mssql платная + работает на платной оси)
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091921
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) насколько просто проводить изменения и отладку (скорость создания готового решения задачи заказчика)

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

1) + 2) = насколько легко перекидывать задачи от одного исполнителя другому и насколько легко все это контроллировать
подход и правильный и не правильный...
вместо того чтоб поднимать уровень исполнителей , мы опускаемся до их уровня....
я предпочитаю действовать по принцЫпу - мэдлеэно, мэдленно сойти и всё стадо....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091922
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в своё время я потратил кучу времени разбираясь с тонкостями акса, mssql, и сделал вещь, работая с которой операторы обслуживали клиентов не кладя трубку, во время разговора с ним делали и подбор товара и счет.
а уж сертификаты и прочие сопроводиловки к товару они делали одним нажатием- и само все вылезало из принтера..
это всё на точкостях системы..

круто/некруто - это больше из мира конференций по программированию или иного сборища гиков...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091929
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты недавно такое исследовал (ну почти)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 SELECT
    t.name,
    t.id
  FROM (SELECT SQL_SMALL_RESULT
      pass.id,
      pass.name
    FROM pass
    WHERE pass.name LIKE '%35000%' LIMIT 5) AS t

  UNION

  SELECT SQL_SMALL_RESULT
    'показано 5 из' AS f,
    COUNT(pass.id)
  FROM pass
  WHERE pass.name LIKE '%35000%';


5 сек.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091935
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяподход и правильный и не правильный...
вместо того чтоб поднимать уровень исполнителей , мы опускаемся до их уровня....
я предпочитаю действовать по принцЫпу - мэдлеэно, мэдленно сойти и всё стадо....

не совсем...
тут речь идет о том, что рядовых солдат в армии гораздо больше чем офицеров
суть принципов организации процесса, о котором я веду речь, заключается в вычленении как можно большего числа как можно более простых операций для поручения их как можно ниже (рядовым)
не все, но объемы такого "делегирования" удается сделать очень большими
либо ВСЕ гении, либо ВСЕ стадо - это ошибочное понимание ситуации

вадяв своё время я потратил кучу времени разбираясь с тонкостями акса, mssql, и сделал вещь, работая с которой операторы обслуживали клиентов не кладя трубку, во время разговора с ним делали и подбор товара и счет.
а уж сертификаты и прочие сопроводиловки к товару они делали одним нажатием- и само все вылезало из принтера..
это всё на точкостях системы..

не вижу в этом примере вообще никакого реального аргумента переноса бизнес-логики в базу
более того, я даже не вижу признаков хайлоада в вашем примере
даже если у вас в колл-центре было бы 100 или 200 операторов - это все равно смешная нагрузка
тем более по локальной сети
все о чем вы пишите можно замутить на элементарном select/update/insert
распечатка и рисование документов вообще к бд отношения не имеет...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091937
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
авторВсе эти новые плюшки имеют смысл только для хайлоадов, где увеличение эффективности запросов на 20% может сэкономить 10 лямов в месяц, а в наших проектах +/- 30% эффективности вообще всем посрать. Когда что-то начинает тормозить в 5-10 раз, тогда есть смысл разбираться, но каждый раз когда проводили разборки подобных случаев всегда находилось решение как можно на том же самом сабсете сделать все быстрее и проще.

Вообще, я тоже не совсем понимаю откуда восторги. Новости о новой версии начинаются с восхваления совершенно бесполезных для традиционных бд вещей.
Однако результат достигнут - вот даже пользователи тему новую на форуме создали по своей инициативе.
Воистину, эпоха маркетинга.

Конечно, там и другие дельные улучшения имеются.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091940
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот кстати, отличный пример
там какой-то чувак новую тему открыл 18354445

пишет: я в мускуле новичок, помогите мне великие гуру триггер проверьте, а то ссыкатно мне вдруг что-то пойдет не так...
представляете, чувак написал код и теперь боится его исполнять
чувствуете масштаб трагедии??
я считаю - это не он виноват, а это виноват архитектор их системы
а этот джуниор просто стрелочник

с архитектурной точки зрения - это ведь бомба замедленного действия, которая взорвется, если система будет сильно изменяться под воздействием требованием заказчика

мы такие задачи решаем созданием отдельных самостоятельных как мы их называем нормализаторов, и поэтому никаких подводных камней такого типа никогда не бывает, а значит ни новичок, ни даже контролирующий дед не станут жертвами каких-то непонятных эффектов

достаточно открыть код нормализатора и сразу становится понятны все правила, которые только есть применительно как одному объекту, так и к различным комбинациям или вообще по всей системе, потому что этих правил может быть не одно, а сто и они могут меняться по 15 раз в неделю
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091972
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяну можешь как угодно спорить и как угодно называть...
сделал проверку и до и после
всё 64 бита
5.6.21 - 35 сек
5.7.9 - 5 сек
замечательно, я очень рад за развитие MySQL.
5 сек. это на самом деле очень долго, сравните опять с вариантом LIKE "что-то%", когда действительно используется индекс
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091979
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixвадя64 -5.7.9 - 4-5 сек
32 - 5.6 - 60 сек
я хочу исключить свою субъективность...

Мысль Зива была в том, что

64 -5.7.9 - 4-5 сек
32 - 5.6 - 60 сек
64 - 5.6 - 6 сек
мысльмоя в том, что 32 бита - это на порядки меньше кэш данных, чем на 64 бита.

и в том, что надо все-же показывать запросы и планы.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091980
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixвадя, ну, фиг знает короче... главное, что вы поставили 5.7, у вас получилась высокая скорость и это главное, а все остальное - фиг с ним!
не фиг с ним, потому что на самом деле он нифига никакую высокую скорость не получил. а только думает, что получил.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39091981
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

)))
перестань заниматься ерундой...
я уже под эту бредятину создал тестовую таблицу 3млн записей поле varchar(50) забито англ алфавитом в случайном порядке
проверял 555 раз
индекс НЕ ИСПОЛЬЗУЕТСЯ... и никогда не будет (можно подождать версии mysql 7)
в каких-то случаях при LIKE %выражение_До_4х_символов% запрос работает меньше 1сек. (символы выбираю наугад)
может быть срабатывает какой-то алгоритм, упомянутый выше
но это не ПРАВИЛО. Никаких ускорений быть не может.
64бит от х32 отличается только тем что система->программы могут использовать более 4Г ОЗУ
все что иногда видите, принимая за ускорение - это чистая случайность...


+ 1
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092002
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivLumixвадя, ну, фиг знает короче... главное, что вы поставили 5.7, у вас получилась высокая скорость и это главное, а все остальное - фиг с ним!
не фиг с ним, потому что на самом деле он нифига никакую высокую скорость не получил. а только думает, что получил.
полностью согласен, что я просто думаю....
но для опровержения и ли подтверждения я предлагаю проверить и подтвердить и ли опровергнуть.
а не голословно заявлять.
это не маркетинг, мне желательно знать , стоит ли внедрять и переходить на последнюю версию
а 5сек это действительно много, но 10 000 000 записей для моего использования это перебор, потому как 10 лямов наименований товара - это слишком для нормальной конторы
ещё 1 000 000 это куда ни шло.
я не предлагаю использовать везде, у моего метода есть область применения. в которой like '%что-то%' намного удобнее like 'что-то%'
у меня счас работает на 28 000 конструкция like '%что-то%' and like '%что-то%' and like '%что-то%' .
позволяет быстро найти нужное с минимальным вводом. и если 28 000 * (36 сек / 5 сек) = 196 000 буде так жена новой версии , я думаю сто стоит переходить.
я не заставляю всех переходить на новую версию, но если кто-то найдет ещё фишки с ускорением - будет полезно всем
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092011
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

)))
перестань заниматься ерундой...
я уже под эту бредятину создал тестовую таблицу 3млн записей поле varchar(50) забито англ алфавитом в случайном порядке
проверял 555 раз
индекс НЕ ИСПОЛЬЗУЕТСЯ... и никогда не будет (можно подождать версии mysql 7)
в каких-то случаях при LIKE %выражение_До_4х_символов% запрос работает меньше 1сек. (символы выбираю наугад)
может быть срабатывает какой-то алгоритм, упомянутый выше
но это не ПРАВИЛО. Никаких ускорений быть не может.
64бит от х32 отличается только тем что система->программы могут использовать более 4Г ОЗУ
все что иногда видите, принимая за ускорение - это чистая случайность...
чистая случайность - это голословные твои утверждения, я не говорил, что используется индекс, я не знаю, что там используется.
мне совершенно по барабану, используется там индекс или не используется, мне важно , что есть увеличение ( существенное) скорости.
я могу предоставить данные - проверь
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092048
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпотому как 10 лямов наименований товара - это слишком для нормальной конторы
ещё 1 000 000 это куда ни шло.В некоторых предметных областях это вполне себе средненькие значения.
Правда, там такие запросы никому не нужны.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092050
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя могу предоставить данные - проверьБыло бы неплохо, если бы был полный (включая заполнение таблицы данными) скрипт, позволяющий выполнить такого рода тест всем желающим.

Кстати, а Вы смотрели план при быстром выполнении запроса? Может, там что-нибудь новенькое появилось.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092055
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE test.pass (
  column1 varchar(50) DEFAULT NULL,
  name varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  id int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id),
  INDEX IDX_pass_name (name)
)
ENGINE = INNODB
AUTO_INCREMENT = 10000001
AVG_ROW_LENGTH = 52
CHARACTER SET latin1
COLLATE latin1_swedish_ci
ROW_FORMAT = DYNAMIC;



Код: sql
1.
2.
3.
4.
5.
EXPLAIN SELECT SQL_SMALL_RESULT
  pass.id,
  pass.name
FROM pass
WHERE pass.name LIKE '%вап%' LIMIT 5;



вап там точно нет

Код: plaintext
1.
№	id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	1	SIMPLE	pass	(null)	index	(null)	IDX_pass_name	153	(null)	9920941	11,11	Using where; Using index
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092057
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в новой версии улучшена многоядерность
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092062
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переделал на
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE test.pass (
  column1 varchar(50) DEFAULT NULL,
  name varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  id int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id),
  FULLTEXT INDEX IDX_pass_name (name)
)
ENGINE = INNODB
AUTO_INCREMENT = 10000001
AVG_ROW_LENGTH = 61
CHARACTER SET latin1
COLLATE latin1_swedish_ci
ROW_FORMAT = DYNAMIC;


FULLTEXT INDEX IDX_pass_name (name)
впервые увидел что 3 выделенных ядра пахали под 100%

тот же запрос

Код: plaintext
1.
№	id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	1	SIMPLE	pass	(null)	ALL	(null)	(null)	(null)	(null)	10059418	11,11	Using where

время 5 сек
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092064
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторБыло бы неплохо, если бы был полный (включая заполнение таблицы данными) скрипт, позволяющий выполнить такого рода тест всем желающим.
без проблем , там ~130м
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092070
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как правильно переделать этот запрос под использование FULLTEXT?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092083
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как реализовать на fulltext аналог такого
Код: sql
1.
2.
3.
4.
5.
SELECT SQL_SMALL_RESULT
  pass.id,
  pass.name
FROM pass
WHERE pass.name LIKE '%st1%' and pass.name LIKE '%st2%' and pass.name LIKE '%st3%' LIMIT 5


где st1, st2, st3 части строки , не обязательно с начала или конца слова
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092108
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

)))
перестань заниматься ерундой...
я уже под эту бредятину создал тестовую таблицу 3млн записей поле varchar(50) забито англ алфавитом в случайном порядке
проверял 555 раз
индекс НЕ ИСПОЛЬЗУЕТСЯ... и никогда не будет (можно подождать версии mysql 7)
в каких-то случаях при LIKE %выражение_До_4х_символов% запрос работает меньше 1сек. (символы выбираю наугад)
может быть срабатывает какой-то алгоритм, упомянутый выше
но это не ПРАВИЛО. Никаких ускорений быть не может.
64бит от х32 отличается только тем что система->программы могут использовать более 4Г ОЗУ
все что иногда видите, принимая за ускорение - это чистая случайность...
№idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra11SIMPLEpass(null)index(null)IDX_pass_name153(null)992094111,11Using where; Using index
ржу
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092110
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

многие уже месяц ржут, а вы только начали
надеятся при разработке БД на возможные улучшения в будущих релизах БД - это не есть хорошо.
Всегда надо использовать только то, что работает надежно и предсказуемо.
Если вы просто ставите эксперименты - флаг вам в руки
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092118
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпеределал на
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE test.pass (
  column1 varchar(50) DEFAULT NULL,
  name varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  id int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id),
  FULLTEXT INDEX IDX_pass_name (name)
)
ENGINE = INNODB
AUTO_INCREMENT = 10000001
AVG_ROW_LENGTH = 61
CHARACTER SET latin1
COLLATE latin1_swedish_ci
ROW_FORMAT = DYNAMIC;


FULLTEXT INDEX IDX_pass_name (name)
впервые увидел что 3 выделенных ядра пахали под 100%

тот же запрос

Код: plaintext
1.
№	id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	1	SIMPLE	pass	(null)	ALL	(null)	(null)	(null)	(null)	10059418	11,11	Using where

время 5 сек FULLTEXT в версии 5.7 работает с InnoDB? это прогресс знатный...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092123
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

многие уже месяц ржут, а вы только начали
надеятся при разработке БД на возможные улучшения в будущих релизах БД - это не есть хорошо.
Всегда надо использовать только то, что работает надежно и предсказуемо.
Если вы просто ставите эксперименты - флаг вам в руки
тут уже показали историю развития 5.7 , её новизна относительна
я уже просил 18355381
я аналога на fulltext я не нашёл..
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092127
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторFULLTEXT в версии 5.7 работает с InnoDB? это прогресс знатный...
мой запрос работает 5 сек при условии что искомой строки нет , если строка есть - время меньше 5 сек, зависит от местанахождения строки,
при этом функциональные возможности с like шире чем fulltext, а при таких скоростях - like становится очень достойно заменой fulltext
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092131
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

многие уже месяц ржут, а вы только начали
надеятся при разработке БД на возможные улучшения в будущих релизах БД - это не есть хорошо.
Всегда надо использовать только то, что работает надежно и предсказуемо.
Если вы просто ставите эксперименты - флаг вам в руки
а чё ты тогда мозг парил?
Alex_Ustinovперестань заниматься ерундой...
я уже под эту бредятину создал тестовую таблицу 3млн записей поле varchar(50) забито англ алфавитом в случайном порядке
проверял 555 раз
индекс НЕ ИСПОЛЬЗУЕТСЯ... и никогда не будет (можно подождать версии mysql 7)
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092137
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

Что-то я пропустил, вижу FULLTEXT в InnoDB заявлен с версии 5.6...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092140
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

что за манера общения...
я уже ради эксперимента создал таблицу и результаты привел вам. Вы ищите по 3-4 симвалам, при 5 будет гораздо дольше. Я свою часть исследования и результаты привел. Я же просил вас попробовать поиск с НАЧАЛА строки, чтобы вы убедились в ускорении при действительном использовании индекса. Вы согласились, что поиск мгновенный.
Теперь вы выкручиваете ситуацию.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092142
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвадя,

что за манера общения...
я уже ради эксперимента создал таблицу и результаты привел вам. Вы ищите по 3-4 симвалам, при 5 будет гораздо дольше. Я свою часть исследования и результаты привел. Я же просил вас попробовать поиск с НАЧАЛА строки, чтобы вы убедились в ускорении при действительном использовании индекса. Вы согласились, что поиск мгновенный.
Теперь вы выкручиваете ситуацию.
за манеру извиняюсь
я там набирал любое любое количество.
Код: sql
1.
2.
3.
4.
5.
 SELECT
  pass.id,
  pass.name
FROM pass
WHERE pass.name LIKE '%wretwrtvwre rtwerctwretwrtcertyt5y3twwcrtwc%' LIMIT 5;  


4.5 сек
я делал поиск с начала строки - но меня это не устраивало.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092143
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
 SELECT
  pass.id,
  pass.name
FROM pass
WHERE pass.name LIKE '%gerwerwerc%' AND pass.name LIKE '%gwerwerwerwerwec%' LIMIT 5;   


4.5 сек
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092211
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, вы там где-то сообщали, что можете скинуть таблицу на 84 мега.
Скиньте ссылку на архив через дропбокс, яндексдиск, гуглдрайв, мейлклауд для всех желающих проверить скорость вашего запроса.
В архив положите sql-дамп для создания таблицы и популяции её значениями в объеме 10 млн. записей и отдельными sql-файлами приложите тестовые запросы, которые предстоит выполнить у себя на серваке и сравнить с вашими скоростями. Ваши результаты замеров укажите в комментариях sql файла
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092329
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть позже
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092562
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,

это наверное шутка (?........) тащить по инету 84М popotable c popopole varchar(50)? )))
вы же кодер... накодьте на коленке... примерно следующее....
функция, таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
/*ф-я randstr(N) возвратит строку из N символов АНГЛ алфавита*/
CREATE FUNCTION randstr(lenstr INT)
  RETURNS varchar(255)
BEGIN
  SET @randstr := "";
  SET @engstr="abcdefghjklmnopqrstuvwxyz";
  WHILE lenstr > 0 DO
    SET @randstr = CONCAT(@randstr,SUBSTR(@engstr,ROUND(RAND()*CHAR_LENGTH(@engstr)),1)); 
    SET lenstr = lenstr - 1;
  END WHILE;

RETURN @randstr;
END

/*таблица */
CREATE TABLE popotable (
  id int(11) NOT NULL AUTO_INCREMENT,
  popopole varchar(50) DEFAULT NULL,
  PRIMARY KEY (id)
  /* INDEX IDX_popo (popopole) пока уберем */
)
ENGINE = INNODB;


ну и вставляем 1млн еврострок
здесь 200тыс
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 /* 5*5*4*5*5*4*5*4 =200тыс  
выполнить 5 раз для 1млн.*/
INSERT INTO popotable (popopole) 
SELECT randstr(50) FROM 
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t1,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t2,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 ) AS t3,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t4,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t5,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 ) AS t6,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t7,
/*  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t8,*/
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 ) AS t9


после вставки необходимого кол-ва индекс добавим
Код: sql
1.
2.
ALTER TABLE popotable
  ADD INDEX IDX_popotable_popopole (popopole);


играемся
SELECT SQL_NO_CACHE * FROM popotable WHERE popopole LIKE "%anyfind%"
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092574
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovLumix,

это наверное шутка (?........) тащить по инету 84М popotable c popopole varchar(50)? )))
вы же кодер... накодьте на коленке... примерно следующее....


я не кодер, а быдлокодер)))

кодер - это человек, который верит, что символьная система способна аутентично отразить реальность, тогда как быдлокодер на многолетнем опыте боли от взаимодействия с людьми пришел наконец-то к пониманию, что жизнь намного вариативнее любой символьной системы и, скорее, стремится к случайной среде, причем не в стиле теории вероятностей, а в стиле анекдота про блондинку, у которой вероятность встретить динозавра на улице 50/50 - либо встречу, либо нет

так вот мой опыт взаимодействия с заказчиками учит меня, что ваши пререкания с вадей основаны не на кривизне сервера, а на особенностях его тестовых данных и его тестовых запросов

вы потратили два дня на взаимные кидания какашками - результат нулевой
теперь настало время узнать какие у него там КОНКРЕТНЫЕ данные, что 5.6 дает 60 сек, а 5.7 дает 6 сек
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092680
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovLumix,

это наверное шутка (?........) тащить по инету 84М popotable c popopole varchar(50)? )))
вы же кодер... накодьте на коленке... примерно следующее....
[
Не шутка, а дотошный подход экспериментатора.
Пусть вываливает в точности то, что там у него "ускоряется". Другие уж посмотрят и поймут что и почему там "ускоряется".
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092842
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот 89М сжата 7zip, скрипт снят с 5.7.9
действующее поле name.
первое выполение -15 сек, чтение в память
последующее 5 сек
5 сек это если в like находится заведомо не существующее

тестируемый запрос
Код: sql
1.
2.
3.
4.
5.
SELECT
  pass.id,
  pass.name
FROM pass
WHERE pass.name LIKE '%wretwrtvwre rtwerctwretwrtcertyt5y3twwcrtwc%' LIMIT 5;  


для использования как у меня генерится такой запрос
Код: sql
1.
2.
3.
4.
5.
SELECT SQL_SMALL_RESULT
  pass.id,
  pass.name
FROM pass
WHERE pass.name LIKE '%st1%' and pass.name LIKE '%st2%' and pass.name LIKE '%st3%' LIMIT 5


где st1, st2, st3 части строки , не обязательно с начала или конца слова , таких str может быть любое число, но практика показывает, что 4 это уже пербор, т.е. находится строка раньше.
для особенно пытливых такой варант 18354478
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39092849
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
особое влияние оказывает
innodb_buffer_pool_size = 512M
тут уже у кого что позволяет система , рекомендуют до 80% от всего озу....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39093023
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

ну это несерьезно, сравнивать надо при одинаковых конфигах и с SQL_NO_CACHE
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39093063
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Параметр SQL_NO_CACHE запрещает MySQL хранить результат запроса в кэше запросов
неужели я не пробывал перед запуском менять параметр like?
и если он из кэша берёт за 4 сек - это что за кэш?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39093065
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторну это несерьезно, сравнивать надо при одинаковых конфигах
я не жду подтверждения моих цифр (4 сек)
я хочу увидеть значительную разницу
зы
на оракле такое же время выборки ~4-6сек
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097406
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

развивеваю миф об ускорении на фактах

продолжу, пока появилось время
MySQL 5.5.46
MySQL 5.7
MariaDB-10.1.8 (основана на MySQL-5.7)
идентичные конфиги, запуск раздельно
кэш запросов отключен
все в ДБфорж, он добавляет к запросам LIMIT 1000
таблица и заполнение здесь
поле поменял на pole varchar(50) UTF-8


MySQL 5.7 table popotable 2 млн больше не стал заполнять, нет времени идентично предыдущей БД

5.7
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
innodb_buffer_pool_size = 128M
SELECT COUNT(id) FROM popotable
SELECT COUNT(*) FROM popotable
идентичны
SQL.sql: Запрос открыт за 3,341c [3,341c выполнение, < 0,001c выборка]
SQL.sql: Запрос открыт за 3,783c [3,783c выполнение, < 0,001c выборка]
2000000 записей

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%sfhox%"; /*5 символов*/
/*SQL1.sql: Запрос открыт за 70,665c [9,303c выполнение, 61,362c выборка]
215 записей*/
1	SIMPLE	p	index	(null)	IDX_popo	53	(null)	1853560	Using where; Using index

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%wulsf%"; /*5 символов*/
/*SQL1.sql: Запрос открыт за 81,848c [4,367c выполнение, 77,481c выборка]
929 записей*/

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%nxyagg%"; /*6 символов*/
/*SQL1.sql: Запрос открыт за 71,541c [12,979c выполнение, 58,562c выборка]
200 записей */
SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%xglgbqvh%"; /*8 символов*/
/* SQL1.sql: Запрос открыт за 69,894c [69,877c выполнение, 0,017c выборка]
SQL1.sql: Запрос открыт за 46,584c [46,569c выполнение, 0,015c выборка]
1 запись */
все запросы с начала строки LIKE "ЧТО-ТО%" выполняются за < 0,5 сек
innodb_buffer_pool_size = 5M 
первый запуск после рестарта - SQL1.sql: Запрос открыт за 168,337c [22,146c выполнение, 146,191c выборка]
1. SQL1.sql: Запрос открыт за 80,732c [9,454c выполнение, 71,278c выборка]
2. SQL1.sql: Запрос открыт за 81,848c [4,367c выполнение, 77,481c выборка]
все по 80 - предсказуемо, таблица не в пуле
EXPLAIN просто чудо
1	SIMPLE	p	index	(null)	IDX_popo	153	(null)	1951036	Using where; Using index


тайминги по 50-70 сек
MariaDB 10.1.8 (основа - 5.7) table popotable 2 млн больше не стал заполнять, нет времени идентично предыдущей БД

все показатели аналогичны MySQL 5.7 , так как набор данных генерировался под каждую версию с "нуля",
расхождение в +- 5 сек для каждого запроса.

MySQL 5.5.46 table popotable 2 млн больше не стал заполнять, нет времени

вот те бабушка и юрьев день...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
innodb_buffer_pool_size = 128M
SELECT COUNT(id) FROM popotable
SELECT COUNT(*) FROM popotable
идентичны
SQL.sql: Запрос открыт за 2,345c [2,345c выполнение, < 0,001c выборка]
SQL.sql: Запрос открыт за 2,260c [2,260c выполнение, < 0,001c выборка]
2000000 записей

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%sfhox%"; /*5 символов*/
/*SQL1.sql: Запрос открыт за 2,536c [0,441c выполнение, 2,095c выборка]
208 записей*/
1	SIMPLE	p	ALL	(null)	(null)	(null)	(null)	1992609	Using where

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%wulsf%"; /*5 символов*/
/*SQL1.sql: Запрос открыт за 2,312c [0,112c выполнение, 2,200c выборка]
929 записей*/

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%nxyagg%"; /*6 символов*/
/*SQL1.sql: Запрос открыт за 2,554c [0,343c выполнение, 2,211c выборка]
197 записей */
SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%xglgbqvh%"; /*8 символов*/
/* SQL1.sql: Запрос открыт за 2,327c [2,276c выполнение, 0,051c выборка]
5 записей */

innodb_buffer_pool_size = 5M 
ТЕ ЖЕ результаты

время выполнения всех операций - не более 3 сек
во время выполнения запросов сразу после перезапуска MySQL нет никаких 30-35 секунд, сразу по ~2.5сек
тесты специально делались под напряжным дефолтным конфигом
my.cnf# Example MySQL config file for small systems.
# The MySQL server
[mysqld]
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
query_cache_size = 0
default_storage_engine = InnoDB

#skip-networking
server-id = 1

# Uncomment the following if you want to log updates
#log-bin=mysql-bin

# binary logging format - mixed recommended
#binlog_format=mixed

# Causes updates to non-transactional engines using statement format to be
# written directly to binary log. Before using this option make sure that
# there are no dependencies between transactional and non-transactional
# tables such as in the statement INSERT INTO t_myisam SELECT * FROM
# t_innodb; otherwise, slaves may diverge from the master.
#binlog_direct_non_transactional_updates=TRUE

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:\\mysql\\data\\
#innodb_data_file_path = ibdata1:50M:autoextend
#innodb_log_group_home_dir = C:\\mysql\\data\\
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 2M
#innodb_additional_mem_pool_size = 5M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

во всех БД поиск с начала строки - 0.1-0.3 сек (а-ля LIKE "трынь-трынь%")
не комментирую, не делаю выводы, только голые факты....
-------------
суббота, я просто убил 2 часа
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097463
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
я что—то не понял в тврих отчетах....
заголовки перепутаны?
у меня в like %что-то%
вот этого что-то определённо нет в данных , поэтому происходит поиск по всей таблице.
что такое "развивеваю" ?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097637
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяAlex_Ustinov,
1. я что—то не понял в тврих отчетах....
заголовки перепутаны?
2. у меня в like %что-то%
вот этого что-то определённо нет в данных , поэтому происходит поиск по всей таблице.
3. что такое "развивеваю" ?
1. ничего не перепутано, в ДБФорже нажав в списке слева на подключение, можно увидеть версию сервера
2. у меня тоже везде like %что-то%, под спойлером же все очевидно
если таких данных нет = (а с чем связана проверка когда нет данных? какая разница индексу, есть данные или нет?)
но все же (мусорные таблицы я не удалял, проверить не долго)
5.7.9
SELECT * FROM test.popotable p WHERE p.pole LIKE "%123456%" -
первый запуск 110сек
повторные 50-60 сек
5.5.46
SELECT * FROM popotable p WHERE p.pole LIKE "%1144456%"
первый запуск - 3 сек.
3. очепятка, правильно должно быть развеиваю миф , это тоже самое что у вас - "я что—то не понял в тврих отчетах..."
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097642
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

и я же указал - запускаю сервера по одному, раздельно, и ручками (mysqld -- console)? перепутать я не мог
MySQL 5.6 скачивать не стал, сразу взял еще ниже 5.5
сейчас качну выложу тайминги по 5.6
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097660
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
по твоим опытам получается 5.5 использует индексы , а 5.7 нет?
когда я ищу не существующее — я заставляю сканировать все данные, это самая длительная операция. если поиск существующего , то оно может встретиться и раньше — нельзя серьёзно говорить о времени. и 10 000 000 намного больше 2 000 000.....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097691
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

5.6.27
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
innodb_buffer_pool_size = 128M
SELECT COUNT(id) FROM popotable
SELECT COUNT(*) FROM popotable
идентичны
SQL.sql: Запрос открыт за 1,269c [1,269c выполнение, < 0,001c выборка]
SQL.sql: Запрос открыт за 1,303c [1,303c выполнение, < 0,001c выборка]

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%123456%"; /* нет такого значения*/
SQL.sql: Запрос открыт за 2,928c [2,923c выполнение, 0,005c выборка]
0 записей

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%sfhox%"; /*5 симв*/
SQL.sql: Запрос открыт за 3,251c [0,696c выполнение, 2,555c выборка]
217 записей

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%nxyagg%";/*6 симв*/
SQL.sql: Запрос открыт за 3,181c [0,758c выполнение, 2,423c выборка]
165 записей

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%xglgbqvh%"; /*8 симв*/
SQL.sql: Запрос открыт за 3,258c [3,256c выполнение, 0,002c выборка]
4 записи

и т.д. больше не вижу смысла, и так понятно
EXPLAIN
1	SIMPLE	p	ALL	(null)	(null)	(null)	(null)	1991801	Using where


я не говорю что используется индекс , но используется алгоритм, который теперь в 5.7 отсутствует
и наоборот, заявленное в 5.7 использование индекса для like %poioi% совершенно не работает
никакого ускорения я не вижу.
Теперь наоборот не советую даже ставить 5.7
Я сам дурак, пользуюсь только Марией и воткнул уже 10.1.8, буду даунгрейтится. В других местах могут быть такие же непредсказуемости...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097710
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovя не говорю что используется индекс , но используется алгоритм, который теперь в 5.7 отсутствует
и наоборот, заявленное в 5.7 использование индекса для like %poioi% совершенно не работаетЯ где-то видел упоминание, что like %poioi% может использовать два разных алгоритма поиска подстроки в строке в зависимости от длины искомой подстроки. Если это так, то имело смысл в эксперименте и длинные подстроки поискать. Возможно, в новых версиях изменился этот порог или даже сам принцип.

А еще, помнится, тут на форуме кто-то показывал, что функция LOCATE работает быстрее, чем LIKE %poioi%. Интересно, так ли это в новых версиях.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097714
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я показывал план - 5.7 индекс использует
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097720
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори наоборот, заявленное в 5.7 использование индекса для like %poioi% совершенно не работает
никакого ускорения я не вижу.
Теперь наоборот не советую даже ставить 5.7
что-то ты не то делаешь...
у тебя совершенно противоположные результаты.
ч проверял на множестве установок на debian 7 и 8..
и на ноуте под win7
результат повторяемость.
поле текстовое проиндексировано , и под 5.7. план показывает использование индекса
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097729
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА еще, помнится, тут на форуме кто-то показывал, что функция LOCATE работает быстрее, чем LIKE %poioi%. Интересно, так ли это в новых версиях.
Код: sql
1.
2.
3.
4.
5.
 SELECT   
  pass.id,
  pass.name
FROM pass
WHERE LOCATE('ыы',IFNULL(pass.name,'')) > 0 LIMIT 5 ;


№idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra11SIMPLEpass(null)index(null)IDX_pass_name153(null)8931276100Using where; Using index
время такое же как и like....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097731
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ыы отсутствует в данных
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097738
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

открой мой спойлер - там тоже показан план 5.7 - якобы индекс используется
я же все показываю, вадя
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097741
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: sql
1.
LOCATE('ыы',IFNULL(pass.name,'')) > 0

Замените на
Код: sql
1.
LOCATE('ыы',pass.name)


вадявремя такое же как и like....Насколько точно такое же (с учетом моей правки)? Да и тогда разница была всего на единицы процентов, хотя и устойчивая.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097751
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
да я проверил и до твоей правки :)
время одного порядка - 4-6 сек
видимо влияет работа процессора над другими задачами.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097755
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем говорить о разнице не приходится - в пределах точности измерения
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097757
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

это MySQL 5.6
1
SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%sfhox%";
SQL.sql: Запрос открыт за 3,180c [0,952c выполнение, 2,228c выборка]
SELECT p.id, p.pole FROM popotable p WHERE LOCATE( "sfhox",p.pole)>0;
SQL.sql: Запрос открыт за 4,110c [0,619c выполнение, 3,491c выборка]
223 записи


2
SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%nxyagg%";
SQL.sql: Запрос открыт за 2,856c [0,444c выполнение, 2,412c выборка]
SELECT p.id, p.pole FROM popotable p WHERE LOCATE( "nxyagg",p.pole)>0;
SQL.sql: Запрос открыт за 3,887c [0,599c выполнение, 3,288c выборка]
155 записей

неоднозначно
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097765
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
ещё раз, тестирование на просмотр всей таблицы - поиск отсутствкющих
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097766
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQL 5.7

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%sfhox%";
SQL.sql: Запрос открыт за 88,565c [12,290c выполнение, 76,275c выборка]

SELECT p.id, p.pole FROM popotable p WHERE LOCATE("sfhox", p.pole);
SQL.sql: Запрос открыт за 80,777c [4,451c выполнение, 76,326c выборка]
201 записей
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097768
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
ты где-то путаешь....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097770
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или на поиск самой последней записи...
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097773
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадя,

время одинаковое и для отсутствующих и для присутствующих
если индекс работает, то это без разницы
если не работает - тоже

тестируются версии MySQL MariaDB win32
ПК
Windows 7 pro х32
ОЗУ 4G
процессор Xeon 3700 (серверный аналог DualCore E6700)
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097774
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

в каком месте я путаю?
скрипты выложены
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097776
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
тогда поставь mysql....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097778
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
у меня дебиан 3 ядра , 1,5 гига
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097779
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на виртуалке .....
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097781
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяили на поиск самой последней записи...еще раз НЕсуществующее значение MySQL 5.7
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT p.id, p.pole FROM popotable p WHERE LOCATE("111", p.pole)>0;
-- SQL.sql: Запрос открыт за 57,244c [57,240c выполнение, 0,004c выборка]
SELECT p.id, p.pole FROM popotable p WHERE p.pole LIKE "%111%";
-- SQL.sql: Запрос открыт за 53,620c [53,615c выполнение, 0,005c выборка]

-- НЕсуществующее с начала строки ВОТ ОН ИНДЕКС
SELECT p.id, p.pole FROM popotable p WHERE p.pole LIKE "111222222%";
-- SQL.sql: Запрос открыт за 0,006c [0,002c выполнение, 0,004c выборка]
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097782
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяAlex_Ustinov,
тогда поставь mysql....вадя, что с тобой....
у меня 3 (три) MySQL 5.5 5.6 5.7
зачем мне еще???
разрядность Дебиана какая?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097783
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
ddl?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097784
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovвадяAlex_Ustinov,
тогда поставь mysql....вадя, что с тобой....
у меня 3 (три) MySQL 5.5 5.6 5.7
зачем мне еще???
разрядность Дебиана какая?
64
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097787
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скайп, демонстрация столов?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097790
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

это надо? :-) если хотите - пожалуйста
вы какие версии сравниваете?
я думаю вы не сравниваете, вряд ли заморачивались с установкой нескольких экземпляров MySQL на Линукс

пока я делаю такой вывод
MySQL 5.5 5.6 win32 - один алгоритм (может быть была многопоточность)
MySQL 5.7 win32 - другой (может быть Убрали многопоточность)
может быть еще что-то
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097793
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,
ради спортивного интереса
как обосновать абсолютно противоричивые данные?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097794
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

нет, в 5.7 вроде оба ядра работают
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097795
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вижу улучшенную многопоточность по использованию ядер
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097796
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
ddl покажи
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097798
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя вижу улучшенную многопоточность по использованию ядерДля единственной сессии? Не верю.
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097800
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяAlex_Ustinov,
ddl? в моем посте выше и ddl и ф-я заполнения и запрос заполнения
все делалось на "чистых" из коробки экземплярах
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
/*ф-я randstr(N) возвратит строку из N символов АНГЛ алфавита*/
CREATE FUNCTION randstr(lenstr INT)
  RETURNS varchar(255)
BEGIN
  SET @randstr := "";
  SET @engstr="abcdefghjklmnopqrstuvwxyz";
  WHILE lenstr > 0 DO
    SET @randstr = CONCAT(@randstr,SUBSTR(@engstr,ROUND(RAND()*CHAR_LENGTH(@engstr)),1)); 
    SET lenstr = lenstr - 1;
  END WHILE;

RETURN @randstr;
END

/*таблица */
CREATE TABLE popotable (
  id int(11) NOT NULL AUTO_INCREMENT,
  pole varchar(50) DEFAULT NULL,
  PRIMARY KEY (id),
  INDEX IDX_popo (pole)
)
ENGINE = INNODB;
/* ЗАПРОС для заполнения*/
 /* 5*5*4*5*5*4*5*4 =200тыс  */
/*выполнить 5 раз для 1млн.*/
INSERT INTO popotable (popopole) 
SELECT randstr(50) FROM 
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t1,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t2,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 ) AS t3,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t4,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t5,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 ) AS t6,
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t7,
/*  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS t8,*/
  (select 1 as a union select 2 UNION SELECT 3 UNION SELECT 4 ) AS t9;

...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097809
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftвадяя вижу улучшенную многопоточность по использованию ядерДля единственной сессии? Не верю.
я говорю об общей картине по использованию ,
когда происходит первое чтение с диска , когда делается "оптимизация"
в дебиан это графически отображается неплохо, я сравниваю, по памяти, по впечатлению, по картинкам :)
когда идёт выполнение запроса - одно ядро грузится на 100%, остальные на подхвате :)
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097810
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
может сможешь произвести опыты?
...
Рейтинг: 0 / 0
Ускорение LIKE '%str%' в версии 5.7
    #39097820
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

MySQL 5.7
удалил индекс
НЕсуществующее значение
SELECT * FROM popotable p WHERE p.pole LIKE "%iuyt%"
SQL.sql: Запрос открыт за 4,245c [4,223c выполнение, 0,022c выборка]

НЕсуществующее значение с начала строки
SELECT * FROM popotable p WHERE p.pole LIKE "iuyt%"
SQL.sql: Запрос открыт за 3,074c [3,070c выполнение, 0,004c выборка]

создал заново индекс
НЕсуществующее значение
SELECT * FROM popotable p WHERE p.pole LIKE "%iuyt%"
SQL.sql: Запрос открыт за 5,201c [5,198c выполнение, 0,003c выборка]
НЕсуществующее значение с начала строки
SELECT * FROM popotable p WHERE p.pole LIKE "iuyt%"
SQL.sql: Запрос открыт за 0,028c [0,023c выполнение, 0,005c выборка]

пересмотрю предыдущие мои запросы, вдруг индекс именно в 5.7 был "кривой"
SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%sfhox%";
SQL.sql: Запрос открыт за 2,925c [0,495c выполнение, 2,430c выборка]

SELECT p.id, p.pole FROM popotable p WHERE p.pole like "%wulsf%";
SQL.sql: Запрос открыт за 2,928c [0,191c выполнение, 2,737c выборка]
.......................................
далее пропускаю,
признаю - был кривой индекс, почему-то именно только на 5.7
но время ничуть не МЕНЬШЕ, чем в предыдущих версиях 5.5 и 5.6 оно такое же
значит ничего не изменилось
свою писанину за сим заканчиваю, зря потраченное время
красненьким выделил поиск несуществующей с индексом и без. хотя в обоих случаях время варьируется в пределах 3 сек.

Вадя, ну и теперь предполагаю что у вас тоже был слетевший индекс в 5.6
...
Рейтинг: 0 / 0
121 сообщений из 121, показаны все 5 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ускорение LIKE '%str%' в версии 5.7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]