Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 02.11.2010, 10:30   #1
Специалист
 
Регистрация: 14.04.2010
Сообщений: 136
Вес репутации: 173
Inet скоро станет известен
По умолчанию SQL Запрос

Имеем таблицу table в ней столбец test состоит например из 1000 строк. Каждая строка содержит данные типа:
x1
x2
....
xn
Как сформировать запрос? что бы ко всем данным добавить данные:
x1xxx
x2xxx
....
xnxxx

Где xxx например123
Inet вне форума   Ответить с цитированием
Старый 02.11.2010, 10:45   #2
Новичок
 
Аватар для azerty
 
Регистрация: 01.02.2009
Сообщений: 2
Вес репутации: 0
azerty на пути к лучшему
По умолчанию

mysql
UPDATE table SET test = concat( test, '123' )
azerty вне форума   Ответить с цитированием
Старый 28.01.2011, 23:16   #3
Специалист
 
Регистрация: 16.02.2009
Сообщений: 128
Вес репутации: 187
serdyuk скоро станет известен
По умолчанию

Дабы не создавать новую ветку, решил задать вопрос здесь. Интересует вопрос следующего характера:

Допустим у нас в БД есть три таблицы (А, Б, В)
А - 100 000 записей,
Б и В по 50 000 записей

При прочих равных условиях что будет отработано быстрее:
1) два последовательных запроса к таблице А
или
2) по одному запросу к таблицам Б и В ?
__________________
Американский хостинг без ограничений. Ставь хоть сотню Wordpress. Помогу со скидкой.
serdyuk вне форума   Ответить с цитированием
Старый 28.01.2011, 23:31   #4
Монстер
 
Аватар для VAU
 
Регистрация: 30.12.2008
Адрес: Монстрополис
Сообщений: 2,496
Вес репутации: 372
VAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущееVAU - прекрасное будущее
По умолчанию

При прочих равных выберу 2.
__________________
Монстры тоже люди
VAU вне форума   Ответить с цитированием
Старый 28.01.2011, 23:53   #5
Специалист
 
Регистрация: 16.02.2009
Сообщений: 128
Вес репутации: 187
serdyuk скоро станет известен
По умолчанию

Цитата:
Сообщение от VAU Посмотреть сообщение
При прочих равных выберу 2.
Спасибо
Выбор основан на каких-то фактах и просто так нравится больше?
__________________
Американский хостинг без ограничений. Ставь хоть сотню Wordpress. Помогу со скидкой.
serdyuk вне форума   Ответить с цитированием
Старый 29.01.2011, 00:00   #6
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 249
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

serdyuk,
Вариант 1 будет возможно быстрее. Например из-за того, что при втором запросе к этой таблице ее индекс будет уже в кеше.
boric вне форума   Ответить с цитированием
Старый 29.01.2011, 00:03   #7
Специалист
 
Регистрация: 16.02.2009
Сообщений: 128
Вес репутации: 187
serdyuk скоро станет известен
По умолчанию

boric,

А реально есть ли смысл делить большую таблицу на меньшие, если общее число строк составляет примерно 200 000 шт. ?
__________________
Американский хостинг без ограничений. Ставь хоть сотню Wordpress. Помогу со скидкой.
serdyuk вне форума   Ответить с цитированием
Старый 29.01.2011, 00:05   #8
Эксперт
 
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 242
eresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущее
По умолчанию

Цитата:
Сообщение от serdyuk Посмотреть сообщение
1) два последовательных запроса к таблице А
или
2) по одному запросу к таблицам Б и В ?
Это называется "горизонтальное масштабирование".
Делается оно так, чтоб заранее было известно в Б или В надо будет искать (ну например в Б - чётные, в В - нечётные, или что-нибудь в этом роде).

Тогда и будет быстрее (и с возможностью масштабирования)
__________________
Партнёрка знакомств с блоком SAPE. Сапа без расходов на хостинг!
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS)
eresik вне форума   Ответить с цитированием
Старый 29.01.2011, 00:21   #9
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 249
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

serdyuk,
Цитата:
А реально есть ли смысл делить большую таблицу на меньшие, если общее число строк составляет примерно 200 000 шт. ?
200 000 шт. думаю не надо делить. Вот на 35 миллионах записей у меня начались проблемы, да и то по той причине, что запрос был сложный (с агрегированием), а выполняться должен был за десятые доли секунды (не более секунды).

В последних версиях MySQL и такие таблицы делить не надо, т.к. можно использовать партиции (partitions), т.е. можно указать таблице на сколько частей и каким образом она будет разделена. Для вас она будет выглядеть единой таблицей. Я пробовал на домашнем сервере - эффект есть, правда на боевом хостинге mysql старая и не позволяет этот механизм задействовать.

Ну желательно индексный буфер настраивать так, чтобы индексные файлы целиком туда влезали.
boric вне форума   Ответить с цитированием
Старый 29.01.2011, 00:33   #10
Специалист
 
Регистрация: 16.02.2009
Сообщений: 128
Вес репутации: 187
serdyuk скоро станет известен
По умолчанию

eresik, boric,

Спасибо!
__________________
Американский хостинг без ограничений. Ставь хоть сотню Wordpress. Помогу со скидкой.
serdyuk вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильный запрос Litov Яндекс 7 31.03.2010 20:01
ВЧ запрос в топ... сколько ? DEN Вопросы от новичков 7 12.08.2009 23:50
запрос в mysql Zergalius Разработка и сопровождение сайтов 22 14.07.2009 13:27
ВЧ запрос BossIT Общие вопросы оптимизации 4 02.06.2009 17:21
Запрос к MySQL Ulf Разработка и сопровождение сайтов 13 12.05.2009 00:26


Часовой пояс GMT +3, время: 10:23.