Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / добавить в бд mysql 1000 000 позиций / 12 сообщений из 12, страница 1 из 1
07.10.2013, 23:04:43
    #38419524
popoff17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
здравствуйте! у меня на локалхосле установлен пакет Denwer, базо данных управляю через phpmyadmin. Мне необходимо создать таблицу, в которой будет 3 поля (id(AI), name, text). и в эту таблицу загнать 1000 000 записей по автоинкременту.
т.е. :
id name text
-------------
1 ivan1 text1
2 ivan2 text2
3 ivan3 text3
.
.
.
1000000 ivan1000000 text1000000

Я пробовал сделать простой цикл в скрипте, но он отваливается по таймауту через 500 записей где то =\
Подскажите как осуществить? может запрос какой особый есть?)) А то не хочется копипастой заниматься)
Заранее благодарен!
...
Рейтинг: 0 / 0
08.10.2013, 05:20:25
    #38419621
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
popoff17,

rtfm load data infile
...
Рейтинг: 0 / 0
08.10.2013, 08:49:33
    #38419677
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
popoff17пробовал сделать простой цикл в скриптеУ MySQL есть запросы, процедуры, функции... а вот скриптов - нет.
...
Рейтинг: 0 / 0
08.10.2013, 09:00:25
    #38419691
popoff17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
akina, Я не так выразился) Я цикл сделала в php и отправлял запросы на добавление строки
...
Рейтинг: 0 / 0
08.10.2013, 09:02:26
    #38419693
popoff17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
tanglir,
спасибо, но
"Команда LOAD DATA INFILE читает строки из текстового файла и вставляет их в таблицу с очень высокой скоростью."
т.е. эти строки должны быть у меня набиты же в текстовом файле, а это опять "рукопашка"... или я не так понял?
...
Рейтинг: 0 / 0
08.10.2013, 09:57:57
    #38419758
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create table n
select 0 n union all select 1 union all select 2 union all select 3 union all select 4 union all
select 5 union all select 6 union all select 7 union all select 8 union all select 9;

create table data
select 
  @n:=((n3.n*10+n2.n)*10+n1.n)+1 id, 
  concat('ivan', @n) name,
  concat('text', @n) value
from n n1,n n2,n n3;

drop table n;

select * from data;
...
Рейтинг: 0 / 0
08.10.2013, 10:43:16
    #38419839
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
popoff17Я цикл сделала в php и отправлял запросы на добавление строкиА надо было - в рамках хранимой процедуры.

PS. Ты там определись уже с полом - или "сделала", или "отправлял"...
...
Рейтинг: 0 / 0
08.10.2013, 11:27:08
    #38419911
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
PS. Из любопытства сделал вставку 1кк записей процедурой в таблицу create table test(id int auto_increment primary key, name varchar(64), txt text) engine=myisam; - процесс занял (2 min 15.16 sec).
...
Рейтинг: 0 / 0
08.10.2013, 11:36:37
    #38419934
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
Cygapb-007, мда, и правда, ТСу ведь нужен тупо автоинкремент, а не загрузка уже имеющихся данных.

PS. create table n, drop table n... зачем, если можно просто сделать временную таблицу? :)
...
Рейтинг: 0 / 0
08.10.2013, 11:38:46
    #38419944
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
tanglirCygapb-007, мда, и правда, ТСу ведь нужен тупо автоинкремент, а не загрузка уже имеющихся данных.

PS. create table n, drop table n... зачем, если можно просто сделать временную таблицу? :)у меня не получилось написать FROM tmp t1, tmp t2 для временной таблицы :)
...
Рейтинг: 0 / 0
08.10.2013, 11:49:34
    #38419971
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
Cygapb-007, можно сделать три таблицы.
...
Рейтинг: 0 / 0
08.10.2013, 11:57:06
    #38419992
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить в бд mysql 1000 000 позиций
tanglirCygapb-007, можно сделать три таблицы.Вообще говоря, да, и это будет более правильно нежели одну постоянную общую для всех пользователей
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create temorary table t1(n int); insert t1(n) values (0),(1),...(9);
create temorary table t2 select * from t1;
create temorary table t3 select * from t1;
create temorary table t4 select * from t1;

select ...
from t1,t2,t3,t4;

drop temporary table t1,t2,t3,t4;
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / добавить в бд mysql 1000 000 позиций / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]