Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
клиент на PHP. будет ли вставка выполняться быстрее, если выполнять ее не как несколько отдельно идущих инсертов, а через ХП? т.е. передать в ХП все эти инсерты массивом и ХП обойдет этот массив и сделает вставки. слышал что ХП вроде компилируются при создании и поэтому работают быстрее. попутно - что быстрее будет 1 инсерт или тот же инсерт, но через ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:09 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
P.S. база на localhost ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:17 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext вот тут поподробнее что значит передать массивом? Код: plaintext компилируются только при создании сессии и живут в кэше до ее окончания ПХП скриптовый язык сессия будет каждый раз новая открываться и закрываться. да и если еще и запросы туда передавать массивом??? (стрингами что-ли) то тогда скорее всего придется использовать EXECUTE, а это выполнение запроса с нуля ИМХО быстрее не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:25 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. PHP: Вариант 1: Код: plaintext 1. Вариант 2: Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 15:21 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
ну если так ПХП умеет таким образом передавать массивы то 2 вариант должен быть быстрее. я незнаю как устроен драйвер для ПХП ... да хотя в любом случае быстрее будет проблема может быть в размере массива который передается в базу думаю это тонкий момент ... вообщем есть простой способ проверить вставь 500 000 записей так и так и посмотри на результат и результат сообщи :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 16:01 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
мдя. ПХП оказалось так не умеет так что пришлось несколько изменить вариант 2 и передавать массив строкой. Код: plaintext 1. 2. 3. после выполнения каждого скрипта производилась очистка таблицы и ваккум. Результаты: Вариант 1 - 50 000 инсертов один за другим Вариант 2 - 50 000 элементов передаются в ХП, которая в цикле делает инсерты server bill # time ./1.php real 2m19.252s user 0m9.620s sys 0m3.208s server bill # time ./2.php real 0m18.414s user 0m0.826s sys 0m0.070s server bill # time ./1.php real 2m48.706s user 0m9.565s sys 0m3.197s server bill # time ./2.php real 0m18.564s user 0m0.818s sys 0m0.100s Называется сам спросил - сам ответил. Ушел переделывать на 2ой вариант =)) P.S. как в plpg посчитать размер массива? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 16:50 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
идея хорошая только надо правильно стринги создавать (кавычки слэшить и все такое прочее) array_upper (anyarray, integer) второй параметр вложение массива ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 17:31 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
А что если еще попытаться ускорить? Вариант 3: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. или PREPARE в ХП ускорения все-равно не даст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 21:10 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
Протестируй ещё вариант 1а: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2005, 11:54 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Еще раз: Вар.1: Код: plaintext 1. Вар.1а: Код: plaintext 1. 2. 3. Вар.2: Код: plaintext 1. 2. 3. 4. server bill # time ./1.php real 2m4.317s user 0m9.127s sys 0m2.924s server bill # time ./1a.php real 0m59.718s user 0m10.055s sys 0m3.445s server bill # time ./2.php real 0m18.676s user 0m0.796s sys 0m0.093s server bill # time ./1.php real 2m22.546s user 0m8.854s sys 0m2.987s server bill # time ./1a.php real 0m59.365s user 0m10.104s sys 0m3.481s server bill # time ./2.php real 0m17.505s user 0m0.808s sys 0m0.090s А вот с вар.3 не соображу как PREPARE в ХП всунуть... =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2005, 13:25 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
prepare в plpgsql делать нельзя только из sql да и что за спешность такая? зачем тебе скорость? насколько она критична? и вариант 1а тоже ничего зато все всегда будет работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2005, 15:27 |
|
||
|
даст ли ХП ускорение инсертов?
|
|||
|---|---|---|---|
|
#18+
да в принципе спешки нет никакой, но если можно на вставку данных вместо 2 минут потратить 18 секунд, то почему нет? =) насчет вар. 1а - у меня все-равно на этой таблице триггер на вставку стоял. так что ХП задачу не усложнила в моем случае. vfabr, спасибо за помощь. а варианты вставки и результаты тестов вдруг кому пригодятся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2005, 16:35 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33078135&tid=2007238]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 400ms |

| 0 / 0 |
