Apa batas atas catatan untuk MySQL database table. I'm bertanya-tanya tentang autoincrement field. Apa yang akan terjadi jika saya menambahkan milions of records? Bagaimana untuk menangani situasi semacam ini? Thx!
Nilai terbesar dari bilangan bulat memiliki sedikit untuk melakukan dengan jumlah maksimum baris yang dapat anda simpan di atas meja.
It's benar bahwa jika anda menggunakan int atau bigint sebagai kunci utama, anda hanya dapat memiliki sebagai banyak baris sebagai jumlah nilai unik dalam tipe data dari primary key, tapi anda don't harus membuat primary key integer, anda bisa membuat CHAR(100). Anda juga bisa menyatakan kunci primer selama lebih dari satu kolom.
Ada kendala lain pada meja ukuran selain jumlah baris. Misalnya anda bisa menggunakan sebuah sistem operasi yang memiliki batasan ukuran file. Atau anda bisa 300GB hard drive yang dapat menyimpan hanya 300 juta baris jika masing-masing baris adalah 1 KB dalam ukuran.
Batas ukuran database adalah benar-benar tinggi:
http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html
Dengan storage engine MyISAM mendukung 232 baris per meja, tapi anda dapat membangun MySQL dengan --with-big-tabel
pilihan untuk membuatnya mendukung hingga 264 baris per meja.
http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html
Yang InnoDB storage engine doesn't tampaknya memiliki batas pada jumlah baris, tetapi memiliki batas pada tabel ukuran 64 terabyte. Berapa banyak baris yang sesuai dalam hal ini tergantung pada ukuran masing-masing baris.
mysql tipe int dapat melakukan beberapa baris: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
unsigned int
nilai terbesar adalah 4,294,967,295
unsigned bigint
nilai terbesar adalah 18,446,744,073,709,551,615
Saya sarankan, jangan pernah menghapus data. Don't mengatakan jika tabel lebih dari 1000 memotong ujung meja. Perlu ada bisnis yang nyata logika dalam rencana anda seperti berapa lama user ini sudah tidak aktif. Misalnya, jika lebih dari 1 tahun kemudian menempatkan mereka di tabel yang berbeda. Anda akan memiliki ini terjadi mingguan atau bulanan dalam pemeliharaan script di tengah-tengah waktu yang lambat.
Ketika anda bertemu dengan banyak baris di tabel anda, maka anda harus mulai sharding tabel atau partisi dan masukkan data-data lama di old tabel dengan tahun seperti users_2011_jan, users_2011_feb atau gunakan angka untuk bulan. Kemudian mengubah program anda untuk bekerja dengan model ini. Mungkin membuat sebuah tabel baru dengan kurang informasi untuk meringkas data dalam waktu kurang kolom dan kemudian hanya merujuk ke yang lebih besar tabel dipartisi ketika anda memerlukan informasi lebih lanjut seperti ketika pengguna melihat profil mereka. Semua ini harus dipertimbangkan dengan sangat hati-hati agar di masa depan tidak't terlalu mahal untuk re-faktor. Anda bisa juga menempatkan hanya pengguna yang datang ke situs anda sepanjang waktu dalam satu meja dan pengguna yang tidak pernah datang dalam arsip set meja.
Di InnoDB, dengan batas pada tabel ukuran 64 terabyte dan MySQL-turut-batas ukuran 65.535 ada dapat 1,073,741,824 baris. Itu akan menjadi jumlah minimum dari catatan memanfaatkan maksimum baris-batas ukuran. Namun, lebih banyak catatan dapat ditambahkan jika ukuran baris lebih kecil .
Menurut Skalabilitas dan Batas bagian dalam http://dev.mysql.com/doc/refman/5.6/en/features.html, Dukungan MySQL untuk database yang besar. Mereka menggunakan Server MySQL dengan database yang berisi 50 juta catatan. Beberapa pengguna menggunakan MySQL Server dengan 200.000 tabel dan tentang 5,000,000,000 baris.
ukuran maksimum baris untuk tabel tertentu ditentukan oleh beberapa faktor:
Representasi internal dari sebuah tabel MySQL memiliki ukuran maksimum baris batas 65.535 byte, bahkan jika penyimpanan mesin ini mampu mendukung lebih baris. BLOB dan TEXT kolom hanya berkontribusi 9 sampai 12 byte ke arah baris size limit karena isinya disimpan secara terpisah dari sisa-turut.
Ukuran maksimum baris untuk tabel InnoDB, yang berlaku untuk data disimpan secara lokal dalam database halaman, sedikit kurang dari setengah halaman. Misalnya, ukuran maksimum baris adalah sedikit kurang dari 8KB untuk default 16KB InnoDB ukuran halaman, yang didefinisikan oleh innodb_page_size opsi konfigurasi. "Batas pada Tabel InnoDB".
Jika baris yang mengandung variabel-panjang kolom melebihi InnoDB ukuran maksimum baris, InnoDB memilih variabel-panjang kolom untuk eksternal off-page penyimpanan sampai baris yang sesuai dalam InnoDB baris batas ukuran. Jumlah data yang disimpan secara lokal untuk variabel-panjang kolom yang disimpan off-page berbeda dengan format baris. Untuk informasi lebih lanjut, lihat "InnoDB Turut Penyimpanan dan Baris Format".
Berbagai format penyimpanan menggunakan jumlah yang berbeda dari halaman header dan trailer data, yang mempengaruhi jumlah penyimpanan yang tersedia untuk baris.
Link http://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html
Turut Batas Ukuran
Ukuran maksimum baris untuk tabel tertentu ditentukan oleh beberapa faktor:
Representasi internal dari sebuah tabel MySQL memiliki ukuran maksimum baris membatasi 65.535 byte, bahkan jika penyimpanan mesin ini mampu mendukung lebih baris. BLOB dan TEXT kolom hanya berkontribusi 9 sampai 12 byte ke arah baris size limit karena isinya disimpan secara terpisah dari sisa-turut.
Ukuran maksimum baris untuk tabel InnoDB, yang berlaku untuk data yang disimpan secara lokal dalam database halaman, sedikit kurang dari setengah halaman untuk 4KB, 8KB, 16KB, dan 32KB innodb_page_size pengaturan. Misalnya, ukuran maksimum baris adalah sedikit kurang dari 8KB untuk default 16KB InnoDB ukuran halaman. Untuk 64KB halaman, ukuran maksimum baris adalah sedikit kurang dari 16KB. Lihat Bagian 15.8.8, "batas-Batas pada Tabel InnoDB".
Jika baris yang mengandung variabel-panjang kolom melebihi InnoDB ukuran maksimum baris, InnoDB memilih variabel-panjang kolom untuk eksternal off-page penyimpanan sampai baris yang sesuai dalam InnoDB baris batas ukuran. Jumlah data yang disimpan secara lokal untuk variabel-panjang kolom yang disimpan off-page berbeda dengan format baris. Untuk informasi lebih lanjut, lihat Bagian 15.11, "InnoDB Turut Penyimpanan dan Baris Format".
Berbagai format penyimpanan menggunakan jumlah yang berbeda dari halaman header dan trailer data, yang mempengaruhi jumlah penyimpanan yang tersedia untuk baris.
Untuk informasi tentang InnoDB baris format, lihat Bagian 15.11, "InnoDB Turut Penyimpanan dan Baris Format", dan Bagian 15.8.3, "Fisik Turut Struktur Tabel InnoDB".
Untuk informasi tentang MyISAM format penyimpanan, lihat Bagian 16.2.3, "MyISAM Tabel Format Penyimpanan".
http://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html
Tidak ada batas. Hanya tergantung pada anda membebaskan memori dan sistem ukuran file maksimum. Tapi itu doesn't berarti anda tidak't mengambil tindakan pencegahan dalam menanggulangi penggunaan memori dalam database anda. Selalu membuat script yang dapat menghapus baris yang tidak digunakan atau yang akan membuat total jumlah baris dalam sosok tertentu, katakanlah seribu.