![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam tekie pytanie. Czy są takie serwery, gdzie mozna sobie ściągnąć zrzuty baz danych o skomplikowanych relacjach i najlepiej paru milionach rekordów? Bardzo by mi się to przydało, gdyż baze i relacje zrobieć problemem nie jest, ale chodzi o rekordy. A gdyby mieć coś takiego to by można było trochę sobie poćwiczyć i potestować baze danych.
|
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
O!! Dobre pytanie... przylaczam sie. Chociaz mi wystarczy kilkaset/kilka tysiecy rekordow, nie potrzebuje milionow (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
To raczej mozesz sobie sam zrobic. Wrzucasz w petle INSERTa i gotwe. Ja tak robie w pracy. Co prawda przy wrzucaniu 500 000 rekorodow ide na herbate (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
ale ja bym chcial jakies urozmaicenie... jakbym mial to zrobic w petli to bym musial chyba microtime dla urozmaicenia insertowac...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Zawsze mozna uzyc rand()...
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Dokladnie to co napisal ubot. Ja takze daje losowo wygenerowane teksty, losowa godzinke, losowa enumeracje itp itd. Nie sadze aby byl jakis serwis udostepniajacy takie rzeczy gdyz kazda struktura bazy jest inna.
|
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dokladnie to co napisal ubot. Ja takze daje losowo wygenerowane teksty, losowa godzinke, losowa enumeracje itp itd.
Jak losujesz teksty?? Z poziomu php czy da rade z sql'a? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
jak niedlugie teskty to mozna to zrobic z sql-u (MySQL >=4.0) funkcja:
[sql:1:78148d20fb] elt(rand(4)+1,'tekst1','tekst2','tekst3','tekst4') [/sql:1:78148d20fb] |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja to robię tak - wystarczy ten przykład sobie dopasować.
[php:1:6570ab9378]<?php // Funkcja generująca łańcuchy znaków function uid($l,$in) { $z["c"]="0123456789"; $z["z"]="abcdefghijklmnoprstuvxyzq"; $z["a"]="abcdefghijklmnoprstuvxyzq0123456789"; $z["A"]="abcdefghijklmnoprstuvxyzq0123456789ABCDEFGHIJKLMNOPRSTUVXYZ"; $z["Ac"]="abcdefghijklmnoprstuvxyzqABCDEFGHIJKLMNOPRSTUVXYZ"; $z["As"]="ab cd efghi jklmno prstuvxyzqA BCDEFGHIJKL MNOPRSTUVXYZ "; $z["s"]="010203040506070809"; for($i=0; $i<$l; $i++) { $s.=substr($z[$in],(rand()%(strlen($z[$in]))),1); } return($s); } srand((double)microtime()*1000000); set_time_limit(0); polacz(); for($i=0; $i<20000; $i++) { $zm1=uid("15","A"); $zm2=rand(1,37); $zm3="-1"; $zm4=uid(rand(50,400),"As"); // Tekst losowej długości i losowych znakach $zm5=rand(0,1); $zm6=rand(1,4); $zm7=uid(3,"c").".".uid("2","c"); $q=mysql_query("INSERT INTO bla bla bla"); ?>[/php:1:6570ab9378] Czas dodania 20000 rekordów to około 1,5-2 minuty |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Z listy dyskusyjnej:
Cytat We've got a database that has about 89 Million rows, under PostgreSQL 7.3.3 on a dual PIII 1.2 with 4 GBytes of RAM on a 5 disk RAID 5 array. The dataset itself is about 26+ GBYtes in size, all of it in the one table. Cos takiego bym chcial...
Nawet bez takiego sprzetu |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Znaczy chcialbys sciagac z netu 26GB baze, tak? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
no moze przesadzilem...
|
|
|
![]()
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
już mam coś fajnego
służy do przerzucania do bazy danych z system plików, z tym, że pliki nie są prawdziwe i wszystkie mają wartość określoną przez PLIK program korzysta z bazy danych podanej tutaj http://forum.php.pl/viewtopic.php?t=4037 Kod #define PQHOST NULL jak na razie nie wkłada jeszcze plików tak jakbym chciał, ale nie udało mi się jeszcze zrobić poprawnego ich otwierania i czytania
#define PQPORT NULL #define PQOPTIONS NULL #define PQTTY NULL #define PQNAME "postgres" #define PQUSER "php_pl" #define PQPASS "**************" #define INSERT_DIR "" #define NAME "/" #define PLIK "Plik testowy, który wkładam do bazy za pomocą programu w C" #define FALSE 0 #define TRUE !FALSE #include<libpq-fe.h> #include<unistd.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> #include<dirent.h> #include<errno.h> #include<fcntl.h> PGconn *conn; char *insertid( /* PGconn *conn */ ) //PGconn *conn { extern PGconn *conn; PGresult *res; res = PQexec( conn, "SELECT last_value FROM categories_id_seq;" ); if( !res || PQresultStatus( res ) != PGRES_TUPLES_OK ) { puts( "Cannot get ID" ); } return PQgetvalue( res, 0, 0 ); } int insertdir( /* PGconn *conn, */ char *path, char *name, char *id ) //PGconn *conn //const char *path; //const char *name; //const char id[20]; { char *query, *iid, *temppath; PGresult *res; extern PGconn *conn; DIR *dir; FILE *file; struct dirent *dirs; struct stat *status; if( ( strcmp( name, "." ) == 0 ) || ( strcmp( name, ".." ) == 0 ) ) return TRUE; temppath = malloc( 200 ); strcpy( temppath, path ); strcat( temppath, ( ( strcmp( path, "/" ) == 0 ) || ( strcmp( path, "" ) == 0 ) )? "": "/" ); strcat( temppath, name ); if( ( dir = opendir( temppath ) ) != NULL ) { query = malloc( 100 ); printf( "Tworzenie katalogu: %sn", temppath ); strcpy( query, "SELECT mkdir('" ); strcat( query, ( strcmp( name, "" ) == 0 ) ? "root" : name ); strcat( query, "', "); strcat( query, id ); strcat( query, ");" ); printf( "Wykonywane zapytanie: %sn", query ); res = PQexec( conn, query ); free( query ); if( !res || PQresultStatus( res ) != PGRES_TUPLES_OK ) { printf( "Błędne zapytanie:%sn", query ); printf( "%sn%sn", PQresultErrorMessage( res ), PQerrorMessage( conn ) ); return FALSE; } iid = insertid( conn ); while( ( dirs = readdir( dir ) ) != NULL ) if( insertdir( /* conn, */ temppath, dirs->d_name, iid ) == FALSE ) return FALSE; free( temppath ); return TRUE; } else if( errno == ENOTDIR ) { query = malloc( 200 ); printf( "Tworzenie pliku: %sn", temppath ); strcpy( query, "SELECT mk('" ); strcat( query, name ); strcat( query, "', " ); strcat( query, id ); strcat( query, ", '" ); strcat( query, PLIK ); strcat( query, "');" ); printf( "Wykonywane zapytanie: %sn", query ); res = PQexec( conn, query ); free( query ); free( temppath ); if( !res || PQresultStatus(res) != PGRES_TUPLES_OK ) { printf( "Błędne zapytanie:%sn", query ); return FALSE; } } else return TRUE; } int main( void ) { extern PGconn *conn; conn = PQsetdbLogin( PQHOST, PQPORT, PQOPTIONS, PQTTY, PQNAME, PQUSER, PQPASS ); PQexec( conn, "BEGIN;" ); printf( "%sn", PQerrorMessage( conn ) ); if( insertdir( /* conn, */ INSERT_DIR, NAME, "1" ) == FALSE ) { puts( "Inserting Failed!" ); PQexec( conn, "ROLLBACK;" ); PQfinish( conn ); exit( 1 ); } PQexec( conn, "COMMIT;" ); PQfinish( conn ); puts( "Program succed" ); return 0; } |
|
|
![]()
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
ehh racja, ale to mój pierwszy program w c większy niż sto linijek (boje się że jak dam sprintf to już tak nie będzie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) i najważniejsze, że działa!
|
|
|
![]()
Post
#15
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
hhe, widze ze odpowiedziales na post, ktorego juz nie ma (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
po kilku minuitach (jeszcze nie bylo odpowiedzi) stwierdzilem, ze jednak nie bede wytykal tego typu bledow i usunalem. PS. czemu nie napisales tego w php, jego przeciez znasz duzo lepiej niz C. Let me guess... ambicja? I prawidlowo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) PPS. dopiero teraz doczytalem, ze masz jakis problem z odczytywaniem plikow, napisz jaki, postaram sie pomoc. Co prawda nie to forum, wiec moze na PM, coby nas nie zbanowali (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat PS. czemu nie napisales tego w php, jego przeciez znasz duzo lepiej niz C.
http://forum.php.pl/viewtopic.php?t=4065&highlight=dirTutaj mam to samo w php ale nie działa
Let me guess... ambicja? I prawidlowo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ambicja też trochę wchodzi w grę Cytat PPS. dopiero teraz doczytalem, ze masz jakis problem z odczytywaniem plikow, napisz jaki, postaram sie pomoc. Co prawda nie to forum, wiec moze na PM, coby nas nie zbanowali (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ja sobie z tym poradze, tylko będe musiał trochę pokombinować
a tak wogóle to ten kod jest już bardzo nieaktualny, ponieważ 1. jest bardzo wolny (ok. 3 plików/katalogów na sek), więc coś musi być niewydajne, a mi się wydaje, że struktuara bazy 2. po pewnych doświadczeniach nie mam zamiaru więcej pracować na tej strkuturze, bo jest bardzo ( oj jak bardzo ) łatwa do zniszczenia 3. albo moje rozwiązania są bardzo kiepskie albo ta strktura (stawiam na sktrukturę, ścieżke wyciągam jednym selectem i jednym forem) jest kiepska bo wyciągnięcie głupich 8000 ścieżek trwa ok 500000 ms (więc komu to robi różnicę, a to jest według niektórych najważniejsza zaleta tej struktury!) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 16:18 |