@phpgeeks

Страница 8364 из 8430
Денис
16.10.2018
11:32:39
оккей гугл. как добавить колонку в таблицу с 1ккк+ записей чтобы сайт не упал?
мне кажется ничего ему не случится (но это мне так кажется) ты это, сообщи как добавишь :)

а вообще я б в таком случае разделил бд и веб по разным сервакам

Артем / IT
16.10.2018
11:34:30
iBird
16.10.2018
11:35:13
тк уже целый день добавить пытаюсь) нагуглил ALTER TABLE xxx ADD COLUMN , ALGORITHM = INPLACE, LOCK = NONE не помогает.

Google
Денис
16.10.2018
11:37:22
ALTER TABLE big_table ADD new_field VARCHAR(255) NOT NULL AFTER any_field;

iBird
16.10.2018
11:44:56
ALTER TABLE big_table ADD new_field VARCHAR(255) NOT NULL AFTER any_field;
нет. синтаксис то я знаю. я просто для примера скинул. все вариации ALTER TABLE либо вешают сайт. либо в процессе добавления выходит ошибка дублей

Денис
16.10.2018
11:45:21
ну так конечно подождать придётся

iBird
16.10.2018
11:45:54
такое будет делаться часа 2 минимум. я не могу позволить чтобы сайт в даунтайме был это время

Dmitriy
16.10.2018
11:46:15
ALTER TABLE big_table ADD new_field VARCHAR(255) NOT NULL AFTER any_field;
плохой пример. хотя бы знулить надо. а потом нот нул ставить

Денис
16.10.2018
11:49:32
Оператор ALTER TABLE во время работы создает временную копию исходной таблицы. Требуемое изменение выполняется на копии, затем исходная таблица удаляется, а новая переименовывается. Так делается для того, чтобы в новую таблицу автоматически попадали все обновления кроме неудавшихся. Во время выполнения ALTER TABLE исходная таблица доступна для чтения другими клиентами. Операции обновления и записи в этой таблице приостанавливаются, пока не будет готова новая таблица. исходя из определения тебе просто нужно помощнее железо либо время)

Vladislav
16.10.2018
11:50:24
Делается полная копия старой таблицы + новое поле. Навешиваешь триггеры на старую таблицу для синхнонизации данных. Запускаешь процесс миграции данных. Разрываешь внешние ключи по старой таблице и навешиваешь на новую. Удаляешь старую таблицу и переименовываешь новую в старое название.

Главное хорошо головой дружить с транзакциями и блокировками.

Dmitriy
16.10.2018
11:52:25
оккей гугл. как добавить колонку в таблицу с 1ккк+ записей чтобы сайт не упал?
1. создаешь нулл колонку. потом только добавляешь туда значение если нужно и только потом ключи 2. копия с тригерами 3. pt-online-schema-change 4. Instant ADD COLUMN

Денис
16.10.2018
11:52:55
легко сказать удаляешь внешние ключи))) это все таблицы которые используют её поля будут искать старую таблицу, я как-то скопировал... потом проклинал

Vladislav
16.10.2018
11:54:32
Так в одной транзакции удаляешь старые FK и создаешь новые. Но индексы для FK уже должны быть для более быстрой подмены FK.

Google
Vladislav
16.10.2018
11:55:45
Поля не нужно удалять при этом. На весь период перехода на новую таблицу ее структура не должна меняться.

Vladislav
16.10.2018
11:58:40
Да, но намного короче период блокировки и сохранение консистентности.

Шерали
16.10.2018
12:12:06
Всем привет. Подскажите по коду, пожалуйста. Функция из учебника. Она сортирует массив с именами файлов и папок по ключам (ключ - имя файла или папки), так, что элементы с именами папок предшествуют элементам с именами файлов. Проще говоря - сначала папки, затем файлы. Вот ее код: uksort($files, function($f1, $f2) { if (is_dir($f1) && !is_dir($f2)) return -1; if (!is_dir($f1) && is_dir($f2)) return 1; return $f1 <=> $f2; }); Несовсем понятно, что происоходит в этих строчках: if (is_dir($f1) && !is_dir($f2)) return -1; if (!is_dir($f1) && is_dir($f2)) return 1;

Денис
16.10.2018
12:18:02
сортировка так работает, три триггера -1 меняет вниз, 1 меняет вверх, 0 ничего не делает

is_dir просто проверяет папка или не папка.

Evgeniy
16.10.2018
12:20:47
Кто знает какую cms лучше использовать для того чтобы в таблицу на сайте добавлять информацию через загрузку xls файла? Спасибо

Шерали
16.10.2018
12:21:01
Условие мне понятно. Просто не понятно, что происходит когда возвращается -1, когда 1 после отработки этих условий. В случае с return понятно, так как там обычное лексигафическое сравнение строк идет

Алексей
16.10.2018
12:32:04
https://vk.com/thelexi?w=wall13449629_1741%2Fall

alex
16.10.2018
12:45:14
подскажите как поймать код который делает редирект?*

Andrew
16.10.2018
12:46:00
найти слово Location в коде?

Ad.x ??
16.10.2018
13:11:02
найти слово Location в коде?
Может это жс редиректит, или реврайт на сервере

Andrew
16.10.2018
13:14:14
чат то про пхп

в этом контексте и отвечаю

Dima
16.10.2018
13:14:42
Всем привет. Подскажите, как лучше сравнить 2 списка разной длины, в которых массивы с ключами. И сравнение провести по одному ключу. Если ключи совпадают - то сделать замену значения по ключу из одного массива в другой. Может есть какой-то метод для этой задачи подходящий?

чтобы не плодить цикл в цикле

Anonymous*
16.10.2018
13:16:32
там специальные функции есть какие-то для массивов

ExPandable
16.10.2018
13:16:35
array_diff?

Google
Anonymous*
16.10.2018
13:16:36
типа array_map

Ну вообще тут вроде один цикл

Денис
16.10.2018
13:18:29
сначала array_diff_key, затем по ключам не вошедших в список в цикле переприсваиваешь

Dima
16.10.2018
13:20:22
ага, спасибо) попробую

Алексей
16.10.2018
13:28:07
это так надо поступать, если есть несроковые ключи

Денис
16.10.2018
13:29:47
точно интерсек же есть)

Алексей
16.10.2018
13:30:00
если ключи гарантировано строовые - тогда хватит просто array_merge

при строковых ключах он заменит предыдущие значения - следующими

Dima
16.10.2018
13:31:35
Дело в том, что у меня ключи в массивах 0,1,2,3,4 и т.д. по кол-ву элементов в массиве. А вот эти элементы - они уже имеют ключи по которым нужно сравнивать.

Anonymous*
16.10.2018
13:31:59
содержимое элемента есть ключ?

Anonymous*
16.10.2018
13:32:23
а что тогда менять, индексы?

Dima
16.10.2018
13:32:51
вот такая структура

и второй такой же, только у него кол-во элементов другое может быть

Алексей
16.10.2018
13:33:12
а... ну тогда array_column сначала

Dima
16.10.2018
13:33:13
а заменять надо поле name

Денис
16.10.2018
13:33:45
так если оно всегда name

Google
Денис
16.10.2018
13:34:21
ты ж написал ключи менять нужно

Алексей
16.10.2018
13:34:25
а нафига такой стремный массив

Dima
16.10.2018
13:34:31
там еще есть поле id рядом c name

по этому id и проверяется соотв

поле id забыл вписать(

Алексей
16.10.2018
13:34:53
ох епт.. структуру.. выдал

Денис
16.10.2018
13:34:53
и что? так тебе значение нужно проверить чтоб другое поменять

Admin
ERROR: S client not available

Денис
16.10.2018
13:35:10
тут ключи вообще непричём

Алексей
16.10.2018
13:35:44
там еще есть поле id рядом c name
если name пересекаются? то менять id ?

Sergey
16.10.2018
13:35:45
там еще есть поле id рядом c name
похоже тебе пора кидать ссылку на gist, с нормальной структурой двух массивов и что в итоге должно получится из них

Алексей
16.10.2018
13:35:52
больше сюрпризова нет?

Денис
16.10.2018
13:36:06
)))

Dima
16.10.2018
13:36:08
нет)

Алексей
16.10.2018
13:38:38
$m = [['name'=>'n1','id'=>1]]['name'=>'n2','id'=>2]['name'=>'n3','id'=>3]; $nm = array_combine(array_column($m,'name'),array_column($m,'id')) // ['n1'=>1,'n1'=>2,'n1'=>3]

наоборот
чего наоборот?

Dima
16.10.2018
13:39:45
чего наоборот?
если id совпадают - заменять name

https://gist.github.com/treef90/b3c887e3cf5e4194654c3b8ca9a7c041

Алексей
16.10.2018
13:39:59
аааа

Google
Алексей
16.10.2018
13:41:13
$m1 = [['name'=>'n1','id'=>1]]['name'=>'n2','id'=>2]['name'=>'n3','id'=>3]; $nm = array_combine(array_column($m1,'id'),array_column($m1,'name')) // ['n1'=>1,'n1'=>2,'n1'=>3] тоже делаешь со вторым массивом

потом array_replace

Dima
16.10.2018
13:42:58
ага, понял) Спасибо)

Массивы да, действительно не оч. выглядят(

Sergey
16.10.2018
13:44:36
Подскажите, плз, как можно в CSV взять значение из столбца (допустим Б) и вставить в столбец (допустим Ж), но с дополнительными значениеями из скрипта. При этом значенией может быть несколько.

Денис
16.10.2018
13:45:51
структуру csv смотрел? откуда он знает что такое Б

Anonymous*
16.10.2018
13:46:32
что это за говно?

Sergey
16.10.2018
13:47:04
fputcsv - записывает. А как указывать-то?

Anonymous*
16.10.2018
13:47:06
хоть бы переносов строк поменьше ставил, чтоли

Dima
16.10.2018
13:47:41
удалил, в гисте структура была

Алексей
16.10.2018
13:47:44
fputcsv - записывает. А как указывать-то?
ну ты csv в массив читаешь fgetscv

Dima
16.10.2018
13:47:48
это было так, для быстрого примера

Алексей
16.10.2018
13:48:18
делаешь операции над массиом и херачишь в новый фаил fputcsv

ежли нужо как то извратиться - типа вложенной таблицы, json тебе в помощь

Sergey
16.10.2018
14:01:36
Хм.....спс....сейчас попробую сваять.... Нет. Мне нужно что бы имена файлов, которые генерирует скрипт, заводились в таблицу, точнее в нужный столбец.

Константин
16.10.2018
14:02:24
Подскажите пожалуйста в чем дело ssh-keygen -f /root/.ssh/known_hosts не может записать

?

Страница 8364 из 8430