Идеи как мога максимално бързо да Insert-на над 10 милиона записа в mysql

rino13

Registered
Здравейте,

Отдавна не съм писал в този форум, тъй като бях зарязал кодирането за определен период от време.

Ситауацията ми в момента е следната:

Захванах се с нещо доста сериозно за моите способности.

Извличам информация чрез file_get_contents(). Посочената информация е над 10 000 000 записа, които инсъртвам в базата данни с PHP скрипт и обикновена mysql заявка като примерната:

Код:
mysqli_query($conn, "INSERT INTO test (id, name, link) 
			VALUES ('$id','$name','$link')");

Въпросът е, че много бавно се инсъртват, по мой изчисления не трябва да гася компа с месеци. Има ли вариант да се разделят на порции или да извършвам действието от няколко устройства едновременно?

Някой има ли опит с толкова огромна база данни, която най-вероятно след това ще си иска и VPS?

Дано някой може да помогне, че моите идеи са изчерпани! Приемам всякакви предложения :)
 
Защо въобще пускаш заявките през PHP?

Ако имаш един огромен SQL файл, просто го импортни директно използвайки mysql през конзолата. Така mysql ще си разделя заявките, както намери за добре.

Код:
$ mysql -uroot -pPASS < file.sql

Зависи какви са заявките, не би трябвало да отнеме кой знае колко време.
 
За съжаление не разполагам с file.sql. Извличам информацията от html страници в реално време, след което я разделям и импортирам в базата с посочената заявка през PHP. Варианта е да я запиша във формат на file.sql и след това през конзолата да я импортна, както ми посочихте. Но въпроса е записването във file.sql, и след това качването му през конзолата, няма ли да отнемат същото време?
 
Част от сайт! Но ще има преработки няма да е едно към едно.
 
Щом знаеш колко са урл адресите значи си ги свалил, слагаш ги на 10 машини по 1милион адреса и да започват да работят.
 

Горе