The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"SQL C API"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"SQL C API"
Сообщение от Igor Искать по авторуВ закладки on 06-Авг-01, 17:04  (MSK)
Hello!

Проблема: потребовалось записывать в SQL базу (сервер MySQL) данные. "Пикантность" в том, что строк _очень_ много, и хотелось бы добиться оптимизации этого процесса. Из описания MySQL C API можно выйти на два вызова mysql_query и real_query. Там же указано, что можно передавать только один sql statement за один вызов. Т.е.,
"select ...; select ...;" не пройдет... да и ';' использовать не надо ("нельзя"?), если присмотреться к тому же описанию.

Делать по одному SQL оператору за вызов мне кажется расточительным -- парсинг строки, ее интерпретация и пр. пр. пр. сотни миллионов раз...

Ваши идеи?
p.s. Я не знаком с Postgresql C API, и, в принципе, не очень "привязан" к MySQL. Если будет алтернативный SQL сервер под UNIX, решающий эту проблему, то это и будет решением.
Спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: SQL C API"
Сообщение от Dim Искать по авторуВ закладки on 08-Авг-01, 01:03  (MSK)
>Проблема: потребовалось записывать в SQL базу
>(сервер MySQL) данные. "Пикантность" в
>том, что строк _очень_ много,

а почему бы тебе не использовать "COPY ... FROM ... file" или скармливать через пайп в "COPY...FROM...STDIN" ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: SQL C API"
Сообщение от Igor Искать по авторуВ закладки on 08-Авг-01, 09:18  (MSK)
>>Проблема: потребовалось записывать в SQL базу
>>(сервер MySQL) данные. "Пикантность" в
>>том, что строк _очень_ много,
>
>а почему бы тебе не использовать
>"COPY ... FROM ... file"

В MySQL нет никакого COPY (Есть LOAD)

Кроме того, файл предварительно обрабатывается,
а делать второй файл (обработанный) крайне неудачная идея -- данных, как я уже сказал, очень
много.

>или скармливать через пайп в
>"COPY...FROM...STDIN" ?

опять же нет такого syntax и кроме прочего,
какая большая разница между этим, и real_query?
подозреваю что из STDIN было бы по кр. мере не быстрее, а скорее всего даже медленнее, поскольку
он сам работает через C API.

впрочем, спасибо за желание помочь.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: SQL C API"
Сообщение от Dim Искать по авторуВ закладки on 08-Авг-01, 13:19  (MSK)
>В MySQL нет никакого COPY (Есть
>LOAD)

Я использую PostgreSQL.

>какая большая разница между этим, и
>real_query?

COPY описана в стандарте SQL92. В PostgreSQL разница ощутима, это так называемый прямой ввод блока данных в базу, т.е. postgresql backend напрямую включает блок данных в таблицу.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: SQL C API"
Сообщение от Igor Искать по авторуВ закладки on 08-Авг-01, 18:16  (MSK)
>>В MySQL нет никакого COPY (Есть
>>LOAD)
>
>Я использую PostgreSQL.
>
следовало сказать ;)
>>какая большая разница между этим, и
>>real_query?
>
>COPY описана в стандарте SQL92. В
>PostgreSQL разница ощутима, это так
>называемый прямой ввод блока данных
>в базу, т.е. postgresql backend
>напрямую включает блок данных в
>таблицу.
ок, есть такое ощущение, что стоит посмореть на
Postgresql C API...
/пошел смотреть ;)


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру