Работа с MySQL

Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Наконец-то решил освоить работу с базой данных, но на первом же кубике возникли проблемы. Во время выполнения запроса на добавление информации в базу данных происходит ошибка. При помощи научного метода тыка было выявлено следующее: если в переменной есть буквенные символы( без разницы кириллица или латиница) вместо этого значения в таблицу кладется значение 0. Если значение переменной состоит целиком из чисел, запись в таблицу происходит нормально.
Сервер локальный, Open Server
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113
покажите структуру таблицы с названиями и типом полей + сам запрос добавления данных в таблицу ... иначе это будет гадание кофейной гуще
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
покажите структуру таблицы с названиями и типом полей + сам запрос добавления данных в таблицу ... иначе это будет гадание кофейной гуще
В текст запроса вставлял и переменные и просто значения. "Использовать параметры в запросе" тоже пробовал
 

Вложения

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113

BigBlag

Client
Регистрация
31.01.2019
Сообщения
7
Благодарностей
3
Баллы
3
Есть такое понятие "Тип данных". Совершенно очевидно что ты получаешь тип данный Строка но пытаешься записать их в числовой параметр, но тут есть и нестыковка по идее у тебя должен писаться значение 1 вместо 0.
P.S. ZennoPoster только начал изучать.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Есть такое понятие "Тип данных". Совершенно очевидно что ты получаешь тип данный Строка но пытаешься записать их в числовой параметр, но тут есть и нестыковка по идее у тебя должен писаться значение 1 вместо 0.
P.S. ZennoPoster только начал изучать.
Аллилуйя брат! Ты спас мои нервы. Спасибо тебе!
 
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Небольшое совет Зенноводам размышляющим над внедрением базы данных в свои проектом и тем кто не использует базы данных.
Ребята, MySQL просто бомба! Мой i5 кое-как тянул 5 потоков парсинга, а когда кол-во строк в чёрном списке превысило 5000 стало совсем печально.
После перехода на БД при тех же 5 потоках нагрузка на процессор 20-25%, а скорость выполнения просто космос!
 
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Подскажите в чём проблема. при достижение 15-17 тыс строк в таблице mysql нагружает процессор на 50-70%. процессор i5 3.7гГц
У меня база данных на openserver. 2 таблицы. В первой таблице один столбец с ссылками(чёрный список), во второй 2 столбца в первом домен во втором ссылки для работы
логика: шаблон проверяет кол-во строк во второй таблице и если строк больше нуля берёт строку в переменные, далее парсится страница и ссылка идёт в первую таблицу, далее спаренные ссылки проверяются на на наличие их в обоих таблицах и если этой ссылки там нет, она кладётся во вторую таблицу.
5 потоков
 

Вложения

BigBlag

Client
Регистрация
31.01.2019
Сообщения
7
Благодарностей
3
Баллы
3
Тебе надо пересмотреть логику твоих приложений. Признаюсь я не очень понял все детали, но это похоже на утечки памяти. Ну не совсем на утечки просто ты очень много данных держишь в оперативной памяти посмотри сколько у тебя занято оперативки в эти моменты. Старайся данные обрабатывать порционно, то есть взял выборку 100 элементов ( чисто для примера думаю эта цифра будет на порядо к больше без ущерба ) обработал их берешь следующие. Не держи много в памяти все что ты задействовал держится в оперативке, но уже по сути тебе не нужно их надо записать и забыть или в БД или в Ексель : D ну ты понял. Утечка памяти актуальна причем даже разработчики признали что в их приложении она присутствует.
Итог: Посмотри нагрузку на оперативку. Можно ее забить, можно стек вызовов переполнить, Можно и циклом Процессор задость тут уже отладка нужна И смотреть где у тебя проблемы.
 
  • Спасибо
Реакции: KolkaPetkinSyn

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Подскажите в чём проблема. при достижение 15-17 тыс строк в таблице mysql нагружает процессор на 50-70%. процессор i5 3.7гГц
У меня база данных на openserver. 2 таблицы. В первой таблице один столбец с ссылками(чёрный список), во второй 2 столбца в первом домен во втором ссылки для работы
логика: шаблон проверяет кол-во строк во второй таблице и если строк больше нуля берёт строку в переменные, далее парсится страница и ссылка идёт в первую таблицу, далее спаренные ссылки проверяются на на наличие их в обоих таблицах и если этой ссылки там нет, она кладётся во вторую таблицу.
5 потоков
Попробуй на версии 5.11.7.0
Ось какая?
 
  • Спасибо
Реакции: KolkaPetkinSyn

BigBlag

Client
Регистрация
31.01.2019
Сообщения
7
Благодарностей
3
Баллы
3
Посмотрел скрины ну там видно конечно что процессор нагружен. Это может быть рекурсия, неправильный цикл да все что угодно нужен код который вызывает это безобразие или финалист одной из Битв Экстрасенсов по другому разобраться тут не возможно (
 
  • Спасибо
Реакции: KolkaPetkinSyn

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Подскажите в чём проблема. при достижение 15-17 тыс строк в таблице mysql нагружает процессор на 50-70%. процессор i5 3.7гГц
У меня база данных на openserver. 2 таблицы. В первой таблице один столбец с ссылками(чёрный список), во второй 2 столбца в первом домен во втором ссылки для работы
логика: шаблон проверяет кол-во строк во второй таблице и если строк больше нуля берёт строку в переменные, далее парсится страница и ссылка идёт в первую таблицу, далее спаренные ссылки проверяются на на наличие их в обоих таблицах и если этой ссылки там нет, она кладётся во вторую таблицу.
5 потоков
Посмотрите статистику происходящего в MySQL.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113

Вложения

Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Вот единственный цикличный кусок шаблона
в списке может быть до 150 ссылок
 

Вложения

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
не могу понять как включить log_slow_queries
Внести изменения в конфиг MySQL (my.cnf)

До версии 5.7
Код:
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time         = 1
Начиная с версии 5.7
Код:
slow_query_log          = /var/log/mysql/mysql-slow.log
long_query_time         = 1
После внесения изменений перезапустить/перезагрузить MySQL.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Суд по тишине в теме, подобная нагрузка при выполнение цикла нормальное явление. А можно как нибудь снизить нагрузку?
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Суд по тишине в теме, подобная нагрузка при выполнение цикла нормальное явление. А можно как нибудь снизить нагрузку?
Ваша проблема, скорее всего, в использовании оператора LIKE
upload_2019-2-9_13-18-58.png

Дело в том, как работает LIKE. При таком запросе не используются индексы, потому что перед искомым текстом может быть любое количество символов.
Вам нужно оптимизировать структуру таблицы. В идеале, использовать FTS. Но, по-моему он работает только в базе типа MyISAM (могу ошибаться).
 
  • Спасибо
Реакции: KolkaPetkinSyn и one
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Перевёл таблицу в MyISAM таблица black, один столбец ,black_url
C помощью запроса
Код:
CREATE FULLTEXT INDEX black_url ON black(black_url)
Запустил индекс, но запрос не находит совпадение.
Варианты использованных запросов
Код:
SELECT * FROM black WHERE MATCH black_url AGAINST('{-Variable.url-}');
SELECT * FROM black WHERE MATCH(black_url) AGAINST('{-Variable.url-}');
SELECT * FROM black WHERE MATCH ('black_url') AGAINST('{-Variable.url-}');
не совсем понял принципа постановки кавычек и скобок. В примерах они то есть то нет
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
использую LIKE и всё норм работает в MySQL

2019-02-09_205603.png
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
  • SELECT * FROM black WHERE MATCH black_url AGAINST('{-Variable.url-}');
  • SELECT * FROM black WHERE MATCH(black_url) AGAINST('{-Variable.url-}');
  • SELECT * FROM black WHERE MATCH ('black_url') AGAINST('{-Variable.url-}');
нет идей почему запросы не срабатывают?
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
нет идей почему запросы не срабатывают?
Попробуйте так

SELECT * FROM black WHERE MATCH black_url AGAINST('?');

Внизу поставьте галку использовать переменные, и пропишите туда.

А где запросы тестируете? В зенке? Там лог не информативный, нужно в программе проверять.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Попробуйте так

SELECT * FROM black WHERE MATCH black_url AGAINST('?');

Внизу поставьте галку использовать переменные, и пропишите туда.

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

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
не помогло, возвращается пустота. строка точно есть
Код:
SELECT * FROM black WHERE MATCH black_url AGAINST('{-Variable.url-}');
SELECT * FROM black WHERE MATCH(black_url) AGAINST('{-Variable.url-}');
SELECT * FROM black WHERE MATCH ('black_url') AGAINST('{-Variable.url-}');
Выполните эти запросы в Heidi и посмотрите, что в логе пишет.
 
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
скрины
 

Вложения

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)