Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.snto-msu.net/showflat.php?Number=7561487&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 08:08:58 2016
Кодировка: Windows-1251

Поисковые слова: storm
помогите с mysql плз - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 0 | 20 | показать все | след. страница
Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  помогите с mysql плз
      28.05.2008 17:08
-1

подскажите плиз, как с помощью хранимой процедуры сделать такое:
получаем одним из параметров тип DATE, берем оттуда ГГГГ-ММ, смотрим, нет ли в базе таблицы с таким именем, и если нет, создаем и вставляем туда запись, а если есть, то просто вставляем туда запись.



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
pilotrulit
enthusiast

Рег.: 19.11.2005
Сообщений: 297
Рейтинг: 507
  Re: помогите с mysql плз [re: Maestro]
      28.05.2008 17:14
1

Обычно на такие вопросы отвечают фразой "Вам это не нужно".
Хоть такой ответ мне и не нравится, но что-то в нем в данном случае есть :)

Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  Re: помогите с mysql плз [re: pilotrulit]
      28.05.2008 17:21
-1

проблема в том, что в данном случае как раз-таки нужно именно это.



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
botWi

Рег.: 22.11.2003
Сообщений: 10160
Из: Moscow
Рейтинг: 1764
  Re: помогите с mysql плз [re: Maestro]
      28.05.2008 17:22
1

В ответ на:

проблема в том, что в данном случае как раз-таки нужно именно это.




расскажи плиз зачем это нужно, создавать таблицы в зависимости от даты
очень интересно



Хватит дрочить на рейтинги
Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  Re: помогите с mysql плз [re: botWi]
      28.05.2008 17:28
 

в требованиях к структуре БД стоит так. мне это самому кажется дикостью, но что делать.
требования составляли большие дяди, их не переубедишь.



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: помогите с mysql плз [re: botWi]
      28.05.2008 17:46
 

Quote:

расскажи плиз зачем это нужно, создавать таблицы в зависимости от даты


Это-то как раз понятно - секционирование. MySQL его умеет только с версии 5.1

Только зачем это делать через ХП?
Не проще сразу в запросе нужную таблицу указать?




Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
pilotrulit
enthusiast

Рег.: 19.11.2005
Сообщений: 297
Рейтинг: 507
  Re: помогите с mysql плз [re: Storm]
      28.05.2008 18:14
1

В ответ на:

Это-то как раз понятно - секционирование. MySQL его умеет только с версии 5.1

Только зачем это делать через ХП?
Не проще сразу в запросе нужную таблицу указать?




Ну про partitioning понятно. Меня именно процедуры хранимые смутили.
А mysql 5.1 меня кстати очень порадовал. Он некоторые вещи более разумно делает. И при переходе отвалилось только то, за что убивать надо - соответственно правильно, что отвалилось :)

И кстати автору можно использовать мегаметод прегенерации таблиц. То есть создавать некоторым скриптиком, пускаемым по крону пару раз в неделю таблички на месяц вперед и не париться о проверке.

Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  Re: помогите с mysql плз [re: Storm]
      28.05.2008 18:25
 

не проще, потому что к БД будут обращаться из многих мест и с помощью разных интерфейсов. то есть, чтобы никто особо не думал, а просто вызывал процедуру(она кроме этого еще будет кое-чего делать).



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
den
IQ Test Negative

Рег.: 18.09.2003
Сообщений: 2609
Рейтинг: 1027
  Re: помогите с mysql плз [re: Maestro]
      28.05.2008 18:59
1

Че то как то не этак.
Имхо правильнее хранить в одной таблице с отдельным столбом гггг-мм, в нее же и писать без проверок. И наделать кучу вьюх с именами гггг-мм если уж совсем нужно. (хотя мб конечно при больших обьемах напрямую к таблице будет существенно быстрее обращацца, только наверняка при какой то большой аналитике еще и union all всякие будут в случае отдельных таблиц).

Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  Re: помогите с mysql плз [re: den]
      28.05.2008 19:22
1

я уже говорил, что знаю, что это не так, но задача стоит так - почесать правой пяткой левое ухо.. вопрос не в том, что это неестественно, а в том, как это сделать.



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
den
IQ Test Negative

Рег.: 18.09.2003
Сообщений: 2609
Рейтинг: 1027
  Re: помогите с mysql плз [re: Maestro]
      28.05.2008 20:14
-1

code:
create table if not exist gggg-mm (...........)


Если вот эта вот if not exist долго выполняется - то мб надо создать отдельную таблицу и хранить в ней уже созданные и проверять сначала по ним. Как то так наверно
code:
create table tbl_names(varchar tbl_name);


code:
..... IF NOT EXIST (select tbl_name from tbl_names where tbl_name=@ggggmm) THEN IF NOT EXIST @ggggmm THEN create table @ggggmm (....); insert into tbl_names values(@ggggmm); END IF; END IF; ~~Action~~ .....


ps. Сам в mysql почти не работал - но если верить гуглу по диагонале - то нечто такое там можно осуществить по идее. Самому проверять лень.







Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  Re: помогите с mysql плз [re: den]
      28.05.2008 20:39
 

не хочет он видеть переменную в CREATE TABLE. ругается на нее.



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31410
Рейтинг: 8951
  Re: помогите с mysql плз [re: Maestro]
      28.05.2008 22:26
1

Quote:

не хочет он видеть переменную в CREATE TABLE. ругается на нее.




тогда генери как текст и запускай через какой-нибудь exec

Maestro
поискатель

Рег.: 17.09.2003
Сообщений: 28615
Из: SPB
Рейтинг: 9311
  Re: помогите с mysql плз [re: DarkGray]
      29.05.2008 00:18
-2

сенькс!!
всем спасибо. я уже придумал еще один изврат(написал dll-ку и послал всем кто в базу будет лазать), но это лучше.



Muistatko mitä enemmin,
vain jo loppuivat lorusi?
Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: помогите с mysql плз [re: den]
      29.05.2008 12:44
 

Quote:

Имхо правильнее хранить в одной таблице с отдельным столбом гггг-мм, в нее же и писать без проверок. И наделать кучу вьюх с именами гггг-мм если уж совсем нужно.


Эээ. Если и делать вьюшки, то наоборот. Куча мелких таблиц и одна общая вьюшка с триггером INSTEAD OF INSERT.

PS Всем кому идея маленьких таблиц кажется неестественной, почитайте что такое секционирование и зачем оно нужно.
Или попробуйте поработать с таблицами объемом 100+Гб. :)
Самый правильный путь - использованить функции секционирования самой БД. Какая версия мускуля используется кстати?




Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
den
IQ Test Negative

Рег.: 18.09.2003
Сообщений: 2609
Рейтинг: 1027
  Re: помогите с mysql плз [re: Storm]
      29.05.2008 14:23
 

Почитал
спасибо
Кругозор еще немного расширен :)

pilotrulit
enthusiast

Рег.: 19.11.2005
Сообщений: 297
Рейтинг: 507
  Re: помогите с mysql плз [re: Storm]
      29.05.2008 14:45
 

В ответ на:

Или попробуйте поработать с таблицами объемом 100+Гб. :)




Самый ice.
После проктирования такого становишься keymaster :)
<писько>
code:
Rows: 1139182874 Avg_row_length: 230 Data_length: 262456475648 Max_data_length: 0 Index_length: 108979503104 Data_free: 0 Auto_increment: 1245841535

</писько>

По этому еще и селектиццо нормально

botWi

Рег.: 22.11.2003
Сообщений: 10160
Из: Moscow
Рейтинг: 1764
  Re: помогите с mysql плз [re: pilotrulit]
      29.05.2008 14:53
-1

а у меня вот щас из таблицы в 100 штук записей селектится 10 секунд :(
а если еще и ордербай по таймстампу стелать ...



Хватит дрочить на рейтинги
pilotrulit
enthusiast

Рег.: 19.11.2005
Сообщений: 297
Рейтинг: 507
  Re: помогите с mysql плз [re: botWi]
      29.05.2008 15:06
1

В ответ на:


а у меня вот щас из таблицы в 100 штук записей селектится 10 секунд :(
а если еще и ордербай по таймстампу стелать ...




100 или 100 000 ?
кстате ботай как создавать индексы, чтобы при ордере using filesort не было.

Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: помогите с mysql плз [re: pilotrulit]
      29.05.2008 15:13
 

Боюсь у него Оракл и никакого filesort не будет, пока есть свободная память.

2botWi: [телепат мод]Попробуй в запросе TO_DATE <-> TO_TIMESTAMP поменяй, может поможет.[/телепат мод]





Редактировал Storm (29.05.2008 15:17)

Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
Страницы: 0 | 20 | показать все | след. страница

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы
>>
Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в