
Al
18.01.2018
04:01:29

Игорь
18.01.2018
07:20:44
Товарищи, есть вопрос по оптимизации. Переодически обновляется таблица (база MySQL) запрос insert on duplicate update. Записей туда по несколько тысяч пишется за запрос. Есть смысл для оптимизации работы разбить это на порции по 500-1000 записей за раз на вставку?

I
18.01.2018
07:22:38

Виктор
18.01.2018
07:22:39
Если нужно "размазать" немного нагрузку, то да.

Google

I
18.01.2018
07:22:52
Надо на данные смотреть
Но питцот строк ниачом

Игорь
18.01.2018
07:24:57
Но питцот строк ниачом
а какой вообще объем большой можно считать для одного запроса. Сами данные в каждой записи легковесные достаточно, нет ничего тяжелого

I
18.01.2018
07:25:26
Тогда не имеет.
В одну транзакцию все

Игорь
18.01.2018
08:27:24
А если аналогичная ситуация, порядка 30000 строк за транзацию и там есть текстовое поле в записи, которое может быть несколько сотен слов?

Ilia
18.01.2018
10:21:13

Игорь
18.01.2018
10:23:17
Спасибо!

Ilia
18.01.2018
10:23:55

Alex
18.01.2018
12:51:32
Привет! как найти все слова в которых содержится определенный слог в nysql?

Google

Alex
18.01.2018
12:51:39
в кириллице

ко?TEXHIK
18.01.2018
12:52:37
глупое предложение, но... like?

Ilia
18.01.2018
12:52:53
Ну like например...
Полнотекстовый поиск
RegEx

ко?TEXHIK
18.01.2018
12:53:20
я вот правда чую он хочет искать их внутри строки одной колонки... иначе б не спросил тут. наверное

Alex
18.01.2018
12:53:29
вот через RegEx как найти слок "ра"?

Ilia
18.01.2018
12:53:31
Like и RegEx БУДУТ МЕДЛЕННЫМИ!

Alex
18.01.2018
12:54:32
я просто в них пока не шарю

Ilia
18.01.2018
12:57:20

Alex
18.01.2018
13:17:00
пытаюсь сделать что-то такое в Sequel pro

Илья
18.01.2018
13:32:43
https://goo.gl/pt1duL ?

Eldar
18.01.2018
15:51:38
Ребят, подскажите, как вставить перменную в text? sqlite
sql = """
UPDATE base
SET text = (?)
WHERE user = ‘Ivan’
"""
cursor.execute(sql, x)
conn.commit()

lost
18.01.2018
15:52:10
питонисты подъехали
почитать доку по либе не?

Vladislav
18.01.2018
15:52:37
по orm'у

Скрудж
18.01.2018
15:52:46

Google

lost
18.01.2018
15:53:21
не, судя по синтаксису - скорее всего это либо коннектор к мускулю родной, либо что-то близкое к нему

Eldar
18.01.2018
16:10:45
большое спасибо

Azat
19.01.2018
06:17:43
Всем привет! Oracle DBA, подскажите, пожалуйста, почему у меня нет grant на мои пакеты и процедуры, которые я сам создавал в своей схеме? Приходится прописывать гранты отдельно через другую схему. Есть ли такая настройка, которая автоматически дает грант на все процедуры и пакеты в моей схеме?

Vladislav
19.01.2018
07:39:05
прописать гранты на пользователя/схему?

MIkhail
19.01.2018
08:07:10
Коллеги, привет!
Подскажите, на ваш взгляд для внутренних пользователей 30-40 сотрудников макс, с таблицами макс на 100кк строк, и БД MSSQL какая конфигурация сервера минимальна?
по железу*
БД по сути только для фроненда нужна, никакой жести, никакого хайлоада, таблиц макс 50шт
16ядер, 64ОЗУ, 500Гб дисков, типа того, да?

Ilya
19.01.2018
08:09:48
Да i3 + 8гб + ssd хватит
Если никто не будет его трогать
И Если это не шарепоинт ?

Vladislav
19.01.2018
08:14:22

MIkhail
19.01.2018
08:24:57
ценители продуктов MS-а))

Игорь
19.01.2018
08:32:28
товарищи вопрос. Нужно делать апдейт таблицы где одна колонка имеет фиксированное значение в запросе в условии where, а другая может быть in (несколько тысяч). Как лучше сделать, база mysql

Виктор
19.01.2018
08:32:55
$format = $this->getRequest()->getParam('format', 'XLS');
switch ($format) {
case 'CSV':
$webPath = $report->makeCSV($passportList);
break;
case 'XLS':
default:
$webPath = $report->makeXLS($passportList);
break;
}
Сделай фабрику, отдельные типы экспортов и единый интерфейс к ним

Alexey
19.01.2018
08:35:22

Игорь
19.01.2018
08:36:14
это значения из массива, формирует прикладная программа

lost
19.01.2018
08:36:27
тогда динамика
гугли prepared statements

Alexey
19.01.2018
08:38:04
не, ну зачем сразу prepared. можно с eq_range_index_dive_limit поиграться

Google

Alexey
19.01.2018
08:38:23

Admin
ERROR: S client not available

lost
19.01.2018
08:38:48
так массив же динамически собирается, он видимо хотел спросить как литерал передать в IN и чтобы он сработал

Игорь
19.01.2018
08:39:37
5.5.43-37

Alexey
19.01.2018
08:40:40
тогда плохо
если вопрос "как сделать быстрее", то в 5.5 быстрее будет временная таблица + join

Игорь
19.01.2018
08:41:42
запрос типа
update offers set value = 0.00 WHERE id = 1025152 AND field IN (1002158,1002165,100217)
только вот в ин тысячи могут быть

lost
19.01.2018
08:42:51
так а вопрос в чём? как передать массив в IN ?

Игорь
19.01.2018
08:43:07
как ускорить
может я не самым лучшим способом это делаю

lost
19.01.2018
08:43:42
глядь, а в 5.5 еще нет explain для dml...
они с 5.6 появились

Vladislav
19.01.2018
08:44:41
как ускорить
поменять структуру таблицы или разбить на пачку апдейтов в одной транзакции
второй вариант скорее всего не будет быстрее

Ilia
19.01.2018
08:44:50

Игорь
19.01.2018
08:44:56
ну я смотрел через селект аналогичный, там вроде
4 | const | 182216 | Using wher

lost
19.01.2018
08:45:12
молодец
а using where по какой колонке?

Alexey
19.01.2018
08:45:31
как ускорить
версия очень старая. в 5.5 тысячи элементов в IN будет очень медленно. А в 5.6+ есть параметр eq_range_index_dive_limit , который нужно поставить в N+1, где N — максимальное количество элементов. и будет быстро

Игорь
19.01.2018
08:46:52

Google

Ilia
19.01.2018
08:47:08

Игорь
19.01.2018
08:47:13
что поделать(

lost
19.01.2018
08:47:21
скорее всего по первому полю только из where

Игорь
19.01.2018
08:47:53

Ilia
19.01.2018
08:48:24

Игорь
19.01.2018
08:48:51
Запрос написать
запрос типа
update offers set value = 0.00 WHERE id = 1025152 AND field IN (1002158,1002165,100217)
только вот в ин тысячи могут быть

Alexey
19.01.2018
08:49:36

Ilia
19.01.2018
08:49:56

Игорь
19.01.2018
08:50:04
в конретной ситуации нет