Pro Dan Kontra Bagi Jenis-jenis Jadual Mysql
11 replies [Last post]
daku kecewa tak boleh nak pos apa2 lagi ...
amin007's picture
User offline. Last seen 8 weeks 6 hours ago. Offline
Pro
Joined: 08/16/2009
Points: 2050

petikan dari http://www.developer.com/db/article.php/2235521/Pros-and-Cons-of-MySQL-Table-Types.htm

alih bahasa oleh http://translate.google.com

Quote:

Pro Dan Kontra Bagi Meja MySQL Jenis-jenis

Semua benda-benda positif itu yang MySQL menyedarkan meja, mungkin paling tidak nampak berganda jenis-jenis meja.
Faset ini permohonan tidak nampak seperti satu ciri dan lebih penting tidak nampak pada waktu perancangan.

MySQL mempunyai enam jenis-jenis meja berbeza.

* MyISAM
* MENGGABUNGKAN
* ISAM
* TIMBUNAN
* InnoDB
* BDB Atau BerkeleyDB Jadual-jadual

Mencari sebuah meja transaksi yang hanya ada jenis saya

Dua daripada meja ini menaip kini transaksi-transaksi sokongan. Transaksi-transaksi memberi pengguna kawalan yang
lebih besar bila bekerja dengan data. Anda akan menggunakan sintaksis menyerupai diikuti untuk satu transaksi manual.

TRANSAKSI PERMULAAN;

@A TERPILIH:=SUM(gaji) DARIPADA table1 WHERE type=1;

MENGEMASKINIKAN table2 SET SUMMMARY=@A WHERE type=1;

MELAKUKAN;

* Jawatan satu komen
* Artikel Emel
* Artikel Cetakan
* Perkara-perkara Saham
o Digg
o del.icio.us
o Slashdot
o DZone
o Reddit
o StumbleUpon
o Facebook
o FriendFeed
o Gulung
o Newsvine
o Google
o LinkedIn
o MySpace
o Technorati
o Twitter
o YahooBuzz

Dua biasanya digunakan meja transaksi jenis-jenis, yang pertama adalah BerkeleyDB transaksi jadual-jadual disediakan oleh
SleepyCat (www.sleepycat.com). Teratur untuk gunakan jadual-jadual BDB menggunakan satu perduaan dengan sokongan BDB atau
mengkonfigurasi sumber dengan withberkeleydb pilihan. Jika anda tidak mahu menggunakan BDB mengemukakan, memulakan pelayan
MySQL dengan skipbdb pilihan. Kehendak ini menyelamatkan banyak ingatan, kerana perpustakaan BDB tidak akan dimasukkan.
Bagaimanapun, anda tidak akan dapat untuk gunakan BDB mengemukakan. BDB adalah tidak terpakai hampir sebanyak alternatif
kedua kita yang adalah InnoDB. InnoDB memperlihatkan rowlevel mengunci, konsisten nonlocking membaca dalam SELECTs dan
biasa tablespace untuk semua jadual-jadual.

InnoDB Tables adalah dibuat oleh Innobase Oy (www.innodb.com), dan diedarkan di bawah GPL serta secara komersial. Jika anda
memerlukan sokongan komersial atau perdagangan lesen untuk permohonan anda dan kos adalah satu kebimbangan, bukan
menggunakan InnoDB akan berjimat anda kira-kira 20-50 % untuk lesen dan kontrak-kontrak sokongan. Jika keutuhan data adalah
satu kebimbangan InnoDB menyediakan MySQL dengan satu transaksi enjin storan dan keupayaan-keupayaan pemulihan nahas.
InnoDB telah direka untuk prestasi maksimum apabila data yang besar pemprosesan naik dan mana-mana orang lain diskbased
enjin pangkalan data secara hubungan boleh mungkin bukan kecekapan CPU padan. Terdapat lain transaksi jenis-jenis meja luar
sana (seperti Gemini), tetapi mereka nampaknya tidak diguna pakai mana-mana lebih daripada BDB. Jadi, dalam satu ringkasan,
kebanyakan pengguna suka kelajuan dan ciri-ciri InnoDB.
Satu Database adalah tidak seronok apabila anda tidak dapat masuk

Meja keingkaran taipkan MySQL adalah MyISAM. Ia telah paras meja mengunci, yang bermaksud semasa satu UPDATE, tiada sesiapa
boleh mengakses mana-mana rakaman lain semeja. BDB menggunakan tahap Page mengunci, dan semasa satu UPDATE, tiada sesiapa
boleh mengakses mana-mana rakaman lain tinggal dalam pangkalan data sama halaman yang meja, sehingga mengunci transaksi
mengeluarkan satu COMMIT.

InnoDB bagaimanapun, menggunakan tahap Row mengunci. Tahap baris mengunci memastikan yang semasa satu UPDATE, tiada sesiapa
boleh mengakses begitu baris tertentu, sehingga mengunci transaksi mengeluarkan satu COMMIT. Mana-mana di atas jenis-jenis
meja akan mungkin menjadi denda untuk pelayan web, tetapi dalam satu permohonan LAN boleh menyebabkan unecessary isu-isu.
Keadaan khas mengadakan alat-alat khas (atau jadual-jadual)

MENGGABUNGKAN jadual-jadual adalah satu koleksi jadual-jadual MyISAM seiras yang boleh digunakan sebagai satu. Anda hanya
boleh SELECT, DELETE, dan UPDATE daripada koleksi jadual-jadual. Jika anda DROP meja MERGE, anda hanya menggugurkan
spesifikasi MERGE. Satu berhujah mengapa anda akan menggunakan jadual-jadual MERGE adalah bagi mendapatkan lebih laju.
Anda boleh berpecah satu meja baca sahaja besar dan kemudian mengeluarkan meja berbeza berbelah pada cakera-cakera berbeza.
Anda boleh melakukan carian lebih efisien. Jika anda mengetahui dengan tepat apa anda mencari, anda boleh mencari dalam
hanya satu daripada belah itu mengemukakan untuk beberapa pertanyaan dan menggunakan satu meja MERGE untuk lain-lain.
Pembaikan lebih efisien. Ia adalah lebih mudah untuk membaiki individu fail-fail yang adalah memetakan untuk satu fail
MERGE daripada mencuba untuk membaiki satu sebenarnya fail yang besar. MyISAM dan oleh itu jadual-jadual MERGE diwakili
sebagai fail-fail masing-masing pada harddrive. Anda boleh mengelilingi fail saiz had untuk sistem pengendalian.

Beberapa kelemahan dalam menggunakan jadual-jadual MERGE adalah:

* Anda boleh hanya menggunakan jadual-jadual MyISAM seiras untuk satu meja MERGE.
* MENGGANTIKAN tidak bekerja.
* Kunci membaca lebih perlahan.

Juga, anda tidak boleh lakukan DROP TABLE, ALTER TABLE, DELETE FROM table_name tanpa satu fasal WHERE, REPAIR TABLE,
TRUNCATE TABLE, OPTIMIZE TABLE, atau ANALYZE TABLE pada mana-mana meja yang dipetakan oleh satu meja MERGE iaitu "terbuka".
Jika anda melakukan ini, meja MERGE mungkin tetap merujuk untuk meja asal dan anda akan mendapat keputusan-keputusan tidak
dijangka. Cara termudah mendapat sekitar kekurangan ini adalah untuk isu perintah FLUSH TABLES, memastikan tidak
jadual-jadual MERGE kekal "terbuka".

Baik, yang perlu membuat anda berfikir dua kali mengenai menggunakan MERGE mengemukakan. Jadual-jadual ISAM akan lenyap
dalam versi MySQL 5.0 , jadi ia tidak akan menjadi idea yang baik untuk gunakan mereka. Yang terakhir tetapi tidak kurang
pentingnya adalah meja HEAP jenis. Jadual-jadual TIMBUNAN menggunakan dicincang indeks-indeks dan disimpan dalam ingatan.
Ini membuat mereka sangat cepat, tetapi jika MySQL jatuh anda akan hilang semua data menyimpan dalam mereka. Mereka sangat
berguna untuk jadual-jadual sementara. TIMBUNAN kedengaran dingin tetapi saya tidak fikir risiko memberi alasan prestasi itu.
Maklumat Sebenar Pada MySQL Jenis-jenis Meja

Kebanyakan orang menggunakan MyISAM jika mereka kelajuan keperluan dan InnoDB untuk keutuhan data. Anda boleh menggunakan
lebih daripada satu atau sebarang gabungan meja ini masukkan pangkalan data anda. Ingat untuk dubur keperluan-keperluan
sebelum membina permohonan anda ia. Walaupun MyISAM adalah lebih cepat daripada InnoDB dalam dunia MySQL, InnoDB laju
berbanding kepada mana-mana enjin pangkalan data. Dengan InnoDB anda mendapat transaksi-transaksi, kelajuan dan integriti
tiga memperlihatkan bukan biasanya diguna dalam hukuman sama. Kebanyakan daripada pelanggan-pelanggan saya mahu sebagai
banyak kelajuan sebagai mereka boleh mendapatkan, tetapi di akhir hari, keutuhan data baik biarkan tidur mereka waktu malam.
Kira-kira Pengarang

John W HORN PHD telah memprogram semenjak 1983 dan pada masa ini CEO Interstate Software satu-satunya pusat latihan MySQL
di Amerika Utara. Syarikatnya adalah satu-satunya "Tahap Emas" Latihan MySQL, sokongan dan kumpulan rundingan dalam dunia.
Dia adalah didasarkan di Kansas City Missouri.

persoalan kat sini, mana satu jenis table yang sesuai untuk sistem berasaskan php yang kita buat???

does not have a status.
User offline. Last seen 3 weeks 7 hours ago. Offline
Moderator
Joined: 08/16/2009
Points: 1524

tgklah ko nak buat apa?

newbie
User offline. Last seen 2 years 40 weeks ago. Offline
Joined: 12/09/2009
Points: 239

kalau nak tau lebih lanjut, lebih baik bace buku mengenai database design.

daku kecewa tak boleh nak pos apa2 lagi ...
amin007's picture
User offline. Last seen 8 weeks 6 hours ago. Offline
Pro
Joined: 08/16/2009
Points: 2050

ada sesetengah jadual aku buat rujukan sahaja. tak tambah atau ubah data sedia ada.
ada pulak jadual aku update sahaja, takde tambah data baru

jadi tengah fikir untuk kerja-kerja diatas, jenis table apa sesuai???

newbie
User offline. Last seen 2 years 40 weeks ago. Offline
Joined: 12/09/2009
Points: 239

macam artikel ni cakap, yang popular cuma innoDB dan MyISAM; bdb mysql dah tak support. kalau ko tak perlukan feature2 innoDB, pakailah MyISAM. macam keperluan ko nyatakan tu, tak perlu pakai innoDB pon takpe, jadi pakai lah MyISAM.

busy man
User offline. Last seen 1 year 15 weeks ago. Offline
Joined: 08/08/2004
Points: 630

rethinkdb ?

daku kecewa tak boleh nak pos apa2 lagi ...
amin007's picture
User offline. Last seen 8 weeks 6 hours ago. Offline
Pro
Joined: 08/16/2009
Points: 2050

innoDB dan MyISAM???

biasanya kalau pakai MyISAM, kalau kita copy saja database
dalam windows dari satu pc ke pc lain biasanya tiada masalah sangat
yang biasa ada masalah kalau pakai innoDB, ada masalah teknikal kat situ

kena pulak ada orang bagi folder database dia orang
bukannya export sql dari phpmyadmin atau perisian lain

newbie
User offline. Last seen 2 years 40 weeks ago. Offline
Joined: 12/09/2009
Points: 239

memang teknikal sikit kalau nak rebuild database hanye dari file untuk innoDB. setakat ni pernah jadi sekali jer kat aku dan aku hanye berjaya recover schema database innoDB, data pulak hilang. kalau nak recover database innoDB, aku recommend gune innodb-tools.

satu jer tips aku, kalau nak recover database innoDB, pastikan tiada satu file pon yang dah diubahsuai. sume file .ibd/ibdata dan .frm diperlukan.

daku kecewa tak boleh nak pos apa2 lagi ...
amin007's picture
User offline. Last seen 8 weeks 6 hours ago. Offline
Pro
Joined: 08/16/2009
Points: 2050

alien3d wrote:
rethinkdb ?

http://www.rethinkdb.com/blog/

macam best aje. masih membaca lagi

daku kecewa tak boleh nak pos apa2 lagi ...
amin007's picture
User offline. Last seen 8 weeks 6 hours ago. Offline
Pro
Joined: 08/16/2009
Points: 2050

karass wrote:

memang teknikal sikit kalau nak rebuild database hanye dari file untuk innoDB. setakat ni pernah jadi sekali jer kat aku dan aku hanye berjaya recover schema database innoDB, data pulak hilang. kalau nak recover database innoDB, aku recommend gune innodb-tools.

satu jer tips aku, kalau nak recover database innoDB, pastikan tiada satu file pon yang dah diubahsuai. sume file .ibd/ibdata dan .frm diperlukan.

fail .ibd/ibdata nak cari kat mana???
dalam folder tak jumpa pun

newbie
User offline. Last seen 2 years 40 weeks ago. Offline
Joined: 12/09/2009
Points: 239

secara default, setting untuk innodb adalah untuk gune ibdata dan file ibdata biasanya kat luar folder database tersebut, tapi masih dalam folder 'data'

contoh directory:

/xampp/mysql/data/
|+blog/
|+cdcol/
|+mysql/
|+phpmyadmin/
|+test/
|-ib_logfile0
|-ib_logfile1
|-ibdata1
`-mysql.err

dimana setiap symbol + tu adalah folder database.

daku kecewa tak boleh nak pos apa2 lagi ...
amin007's picture
User offline. Last seen 8 weeks 6 hours ago. Offline
Pro
Joined: 08/16/2009
Points: 2050

karass wrote:

secara default, setting untuk innodb adalah untuk gune ibdata dan file ibdata biasanya kat luar folder database tersebut, tapi masih dalam folder 'data'

contoh directory:

/xampp/mysql/data/
|+blog/
|+cdcol/
|+mysql/
|+phpmyadmin/
|+test/
|-ib_logfile0
|-ib_logfile1
|-ibdata1
`-mysql.err

dimana setiap symbol + tu adalah folder database.

ooo, kat luar yer. ok2. baru faham sikit