Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запись больших данных в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: нужен совет
nextdrift
Отправлено: 26 Декабря, 2010 - 03:58:00
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Всех с наступающим Новым Годом!

Есть необходимость записывать в БД каждый день около 10К записей за раз.
Можно ли обойтись одним запросом(ткните пальцем. Раньше где-то видел)?

И вопрос 2-ой
Таблица куда записываются данные:

id | cnt | day | type | value
--------------------------------

Индекс по ID
или лучше удалить его?
 
 Top
grefon
Отправлено: 26 Декабря, 2010 - 04:58:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




10К - это 10 килобайт? Или что это? Если речь о килобайтах то конечно можно, и 10 метров можно и гектар (если настройки хостинга и база данных позволят).
Все делается обычным INSERT
Главное чтобы поля таблицы имели правильный формат. Вот Вам список типов:
VARCHAR Может хранить не более 255 символов.
TINYTEXT Может хранить не более 255 символов.
TEXT Может хранить не более 65 535 символов.
MEDIUMTEXT Может хранить не более 16 777 215 символов.
LONGTEXT Может хранить не более 4 294 967 295 символов.

2 вопрос индекс по id есть всегда - это примари поле!!! Удалять не нужно.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Champion Супермодератор
Отправлено: 26 Декабря, 2010 - 09:57:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Обойтись одним запросом можно:
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO t (c1, c2)
  2. (v1,v2),
  3. (v11,v22) ...

Но лучше разделить это на запросы, вставляющие по 100 записей (или меньше или больше в зависимости от размера данных) - так будет быстрее.
 
 Top
nextdrift
Отправлено: 26 Декабря, 2010 - 16:14:29
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




grefon, 10К = 10 000 записей
Champion, не совсем понял конструкцию что и куда.
Можете ссылочку кинуть? Или волшебные слова для гугла сказать Радость
 
 Top
movEAX
Отправлено: 26 Декабря, 2010 - 16:22:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




nextdrift пишет:
Champion, не совсем понял конструкцию что и куда.

INSERT INTO Tablename VALUES
( id, data, data, data, data ),
( id, data, data, data, data ),
( id, data, data, data, data ),
( id, data, data, data, data ) и т.д


-----
армия.. самое убогое место
 
 Top
nextdrift
Отправлено: 26 Декабря, 2010 - 16:47:47
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Радость БОЛЬШОЕ спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB