 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Mie Sep 03, 2008 3:05 pm Titlul subiectului: limitari la nr de tabele? |
|
|
Am un proiect destul de mare in care se creaza dinamic cate o tabela noua pentru fiecare user. Intreabrea mea este care ar fi nr limita de tabele pe care o baza de date le poate tine atat pe myisam cat si pe innodb
stiu ca dimensiunea maxima a unei tabele este data de sistemul de operare, dar mai stiu ca in orice sistem de operare, cu cat ai mai multe fisiere cu atat e posibil sa ruleze mai greu, deci in teorie nr de tabele ar depinde tot de sistemul de operare, dar de la ce limita ar fi posibil sa apara probleme si limitari?
In linux daca am 25.000 de fisiere in director, fiecare corespunzand cu un tabel din bd, cum ar merge acea baza de date (presupunand ca e optimizata la maxim)
am gasit asta http://dev.mysql.com/doc/refman/5.0/en/full-table.html din care rezulta ca inodb e de preferat, pentru ca poate sa tina managementul de tabele pana la 64 TB
Citat: The InnoDB storage engine maintains InnoDB tables within a tablespace that can be created from several files. This allows a table to exceed the maximum individual file size. The tablespace can include raw disk partitions, which allows extremely large tables. The maximum tablespace size is 64TB.
Voi ce stiti despre asta? |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE
|
| Trimis: Mie Sep 03, 2008 3:53 pm Titlul subiectului: |
|
|
eu stiu ca e restrictionat la memorie, nu la numarul de tabele... doar ca adaugand tabele, se adauga si biti in memorie... e posibil sa zic prostii, nu stiu sigur ca nu m-am lovit de asta.
urmeaza intrebarea evidenta: de ce faci 'enspe mii de talebe? |
|
| Sus |
|
azzuro
Data înscrierii: 05/Iul/2005
Mesaje: 240
|
| Trimis: Mie Sep 03, 2008 4:17 pm Titlul subiectului: |
|
|
| Da, esti limitat la marime nu la numar de tabele. Stiu insa ca pe Linux, daca nu mai ai spatiu liber, baza Mysql va fi corupta. Watch out! :D |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 620
|
| Trimis: Mie Sep 03, 2008 4:39 pm Titlul subiectului: |
|
|
| Esti limitat si la numarul de tabele, pentru ca esti limitat la numarul de fisiere pe care le poti tine pe server, independent de tipul tabelului (MyISQM, InnoDB sau altceva). E o pedanterie insa. N-o sa ajunga nimeni asa usor pana la limita. |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE
|
| Trimis: Mie Sep 03, 2008 5:07 pm Titlul subiectului: |
|
|
| Citat: Esti limitat si la numarul de tabele, pentru ca esti limitat la numarul de fisiere pe care le poti tine pe server nu cred ca exista o asemenea limita. E posibil sa fie ceva referitor la OS dar... nu cred. Singura problema ar fi ca se misca tot mai greu dar, daca te tin resursele, cred ca numarul de tabele e infinit... cred... [o sa ma documentez, de curiozitate... daca gasiti voi vrun link, dati-mi si mie] |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 620
|
| Trimis: Mie Sep 03, 2008 5:20 pm Titlul subiectului: |
|
|
| :) pai ai vazut vreun sistem cu capacitate a hard-ului infinita? Atunci da, faci cate tabele vrei. Cum ai lua-o, numarul de tabele e finit, fie si numai sa stochezi metainformatia despre ele. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Mie Sep 03, 2008 5:36 pm Titlul subiectului: |
|
|
este vorba de niste [url=http://en.wikipedia.org/wiki/Cluster_(computing)]clustere[/url], deci capacitatea de stocare nu va fi o problema, dar vectorialpx a pus bine problema, pentru a citi 3-4 TB de date din lista de tabele pentru a afla unde e tabelul meu... dar probabil ca mysql stie sa faca managementul bine la treaba asta si sigur are un algoritm pentru a gasi tabela din cat mai putine accesari...
Sistemul de operare va fi mai mult ca sigur un linux sau Solaris, nu stiu, deci nr de fisiere probabil ca e destul de mare (oricum dupa estimari mai mult de 50.000 de tabele maxim nu cred ca vor fi)
Raspunzand tot lui vectorialpx nspe mii de tabele pentru ca fiecare user i se aloca o tabela noua in care se salveaza anumite informatii despre ce a facut acel user si ce a creat... iar apoi din informatiile alea se genereaza un site cu cateva pagini dinamice... si era nevoie de tabele separate pentru fiecare site in parte... (nu pot da amanunte) |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 656
Locație: Drobeta Turnu Severin
|
| Trimis: Mie Sep 03, 2008 10:08 pm Titlul subiectului: |
|
|
Am gasit pe un forum :
Citat:
But still I want to know how many tables a mysql database can hold ?
When using MyISAM table, the limit will be determined by your operating system, ie. the number of files you can have in one directory.
Using InnoDB tables removes that limitation by allowing multiple tables within a single datafile (tablespace).
The maximum tablespace size is 4 billion database pages. By default, a 'page' is 16K, but it is possible to recompile with 64K pages. This will allow a single tablespace size of ... 'BIG'.
A table will obviously take up at least one database page, meaning you can theoretically have a maximum of 4 billion tables per tablespace.
The number of tablespaces will again be limited by your operating system. Using NTFS on NT, the limit is 4,294,967,295. I imagine UNIX will be limited by the number of inodes. However, before reaching the physical limit of files you wil probably run into an issue with the maximum number of 'open' files allowed.
The first limit you hit will undoubtedly be that of your wallet while buying disk drives. ;)
Incearca asta |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|