Diskusi Keterbatasan AR Pada Yii

Baru saja saya membaca thread general Yii 1.1 yang membahas mengenai masalah keterbatasan AR Yii yang tidak berdaya ketika mencoba load data 1000-2000. Karena Yii meload langsung seluruhnya daripada menggunakan sistem baca satu per satu, otomatis kalau data terlalu yang besar ditampung ke object, akan membuat sistem error karena melewati batas maksimal php. Saya jadi merasa bukankah itu sebetulnya sesuatu yang sangat krusial? Maksud saya misalkan saja, kita membuat sebuah web aplikasi Point Of Sales, bukankah record 1000-2000 pada tabel transaksi itu adalah hal biasa? Atau misalnya membuat sebuah laporan tahunan?

Ataukah memang khusus ketika kita akan membaca data besar, memang tidak boleh menggunakan AR…? Ada pendapat dari para suhu??

sebenarnya, ana belum pernah mengalami.

mungkin bisa diberikan permalink ke threadnya bro?

bagaimanapun, saya yakin developer "di belakang" sedang berfikir keras mengenai hal ini. semoga menemukan jalan cerah.

baca dari sini : http://www.yiiframework.com/forum/index.php?/topic/8527-what-the-real-limitation-of-activerecord/

Dari Qiang Xue menyarankan kalau misalnya sudah ketemu masalah begini harus menggunakan DAO dengan array, saya kurang memahami maksudnya…

klo menurut ane problemnya terbentur feature pdo, feature pdo digunakan agar query dapat dijalankan di semua database yang ada(menyeragamkan). kecuali jika yii hanya suport mysqli, mungkin lain cerita.

terus terang, jadi sedikit ragu dengan yii. ???

1000 - 2000 record bisa dibilang masih sedikit,

untuk sms content aplications, datanya bisa mencapai puluhan ribu record.

moga2x ada solusi yang lebih baik ketimbang join atau back to conventional query aja kali ya? <_<

Pas baca thread itu juga jadi syok :blink: Terus terang karena biasanya pakai framework yang bukan PDO jadinya biasa kan kita pakainya sistem cursor gitu, itu gak pernah jadi masalah. Tapi kemudian saya kepikiran lagi sih…

Apakah mungkin kita benar-benar harus load seluruh data itu… maksud saya gini. Umumnya kan kalo saya bikin sistem POS, saya mau tampilin transaksi Penjualan, gak mgkin dalam satu halaman saya tampil 1000 data sekaligus, tetapi saya pasti akan tampil PER PAGE. Nah ini yang saya kurang tau, apakah CGridView kalau pakai sistem pagination dia hanya akan load sebagian atau tetap load semua. Kalau misalnya load sebagian maka sebetulnya gak gitu masalah. Karena memang sepertinya akan sangat jarang kita betul2 load semuanya bukan??

ane pernah gan AR nya error, kirain bukan masalah php, tapi lebih ke Class ARnya, tapi setelah kalo mau mengolah data massive, waktu itu memang datanya 25000, tidak lagi pake AR,

back to nature, query qhoib.

kalo pagination itu , yii ngakalinya dengan hitung dulu kemudian memproses pagenya, jadi tidak memanggil data secara keseluruhan…

<just contribute> trims </just contribute>

wew baru belajar malah nemunin tread ginian … jadi sakit kepala hehee.

btw saya baru join kok tulis tread nya dibatasin yah … kasih reputation dunk biar gak dilimit sehari cmn 1x post.

hik hik

back to the topic,

ikutan comment ah, sebetulnya waktu pertama kali buat app yii sih kepikirannya mengenai load data :)

karena semua data di load keadalam AR (Active Record), so kalo teralalu besar mungkin akan berbahaya.

saran sih mendingan CGridView dirubah model baca datanya :)

  1. AR di load berdasarkan pageSize yang ditentukan oleh user;

  2. Untuk info dan bangunan tampilan pagingnya menggunakan koneksi manual A__A;

wah jadi pingin buat paging sendiri ehheehhe kalo liat gini sendih … baru belajar dah begini.

tp gue akuin Yii powerfull bgt untuk kecepatannya :)

waduh…pusing…ane lg bikin proyek POS, masalah management di master-detail belum selesai nemuin tread gini…

secara, banyak yg pake AR

lol

Update lagi para agan…

Saya setelah beberapa saat menggunakan CGridView akhirnya saya menarik satu kesimpulan. Data yang diambil oleh CGridView diambil dari CActiveDataProvider(pada umumnya). Sedangkan CActiveDataProvider by default sudah setting pageSize 10, oleh karena itu dia tidak akan load semua data.

By default tidak akan masalah menggunakan CGridView untuk nampilin data yang super banyak selama kita set PageSize yang masuk akal.

Tetapi tentu saja juga tetap harus diperhatikan sih penggunaan AR…

Bagi para bro yang baru , jangan dianggap AR tidak mampu baca ribuan data, mampu kok bro jangan khawatir yang dibahas disini bukan itu.

seperti suhu junxiong barunya, asalakan paginationnya masuk akal, completely aman, bahkan setengah masuk akal juga masih amana, misal di set paginationya 500, ini juga masih aman kok.

masih proses belajar.

thank infonya gan.

Iya ane dikasi tw mas dicky klo AR batasnya cuman 1000 entry. trus codingan ane rubah jadi:


for($i=0;$i<$dp->totalItemCount;$i=$i+1000)	{

$dp->criteria = array(

					'offset'=>$i,

					'limit'=>1000

					);

Lebih tepatnya mungkin tergantung kebutuhan aplikasi yg kita buat, dengan AR kita diberikan fitur pagging, searching, sorting, semua dengan pengambilan data berbasis ajax sehingga tidak perlu loading page berulang-ulang. satu sisi data yg diambil juga terbatas(berat donk pconnect terus, memory penuh). ada kelebihan dan kekurangan.

contoh stay.com dengan data lebih dari 100.000 record masih bisa diakses dengan cepat mengunakan fitur AR. semua hotel di indonesia kayanya ada disini :) - saya sendiri ga kebayang gimana relasi antar tabelnya. coba saja pura2x booking hotel. sekalian menganalisis apa saja yg terlibat disitu. ya mungkin tergantung pilotnya juga. hehee…

Di atas kertas, YII masih merupakan framework yg terbaik saat ini.

ini senior-senior saya yg bilang lho :)

Add-On2x nya pun full free dan banyak pilihan. class nya lengkap, Dokumentasinya juga lengkap. mau dibuat bangun web site ok, web app juga oke. e-book juga sudah banyak dirilis. forumnya rame(ga usah malu lah pake bahasa dewa, wa aja tabrak lari aja ko post di forum inter, wkwkwa…) setahun yang lalu jumlah membernya masih dibawah 20.000, sekarang hampir 150rb. perkembangan yg sangat cepat menurut saya. ane sendiri penasaran sama YII 2.0

DO not Reinvent the Wheel, ikutin arus aja terus, wkwkwkwka…

Thanks infonya agan2 master … btw menurutku ini framework sih emang bgs banget … so cobain aja …

brb, mo booking hotel dulu di stay.com :)

Hasil benchmark framework2 php, post 2 tahun lalu, pake mysqli bukan jaminan bisa lebih cepet :) perhatikan bagian zend yg pake pdo_mysql vs mysqli, atau yii pdo_mysql vs Kohana mysqli.

php-frameworks-comparison-test

tambahan, yii & drupal

topik yang menarik,jadi kesimpulannya?kalau dengan transaksi yang besar,asal pagination yg masuk akal masih aman kan ya?

jadi gimana nih solusinya… jika melakukan perhitungan repot yang banyak… misalnya melakukan report…!

Saya sudah pernah ngalami ini terutama untuk pembuatan report. Report itu sebetulnya cukup fleksibel karena bisa filter berdasarkan criteria2 tertentu, tapi masalah justru terjadi kalau semua criteria dilepas, jadi semua record tampil. nah disini baru muncul masalah karena PHP time out…

loh, ada bro Peter JK di sini.

hahahaha…

maklum pengangguran juga nih Pak Writer Yii… di kantor lagi sepi project, jadinya pengangguran juga… hahaha…