我們的數(shù)據(jù)庫(kù)常常都是很龐大的,一次查詢的結(jié)果集也很大,這樣很浪費(fèi)內(nèi)存,為了降低內(nèi)存的使用率,我們可以使用yii2的batch和each方法。
為了讓大家看的更明白,我們模擬一個(gè)場(chǎng)景,然后通過yii2的debug來查看all與batch/each方法下的內(nèi)存使用情況。
開始準(zhǔn)備
我們先建立一張表,它很簡(jiǎn)單。
你看到了,它有主鍵id、會(huì)員名username、所在省province,現(xiàn)在它是空的。
然后,我們執(zhí)行了一個(gè)循環(huán)
set_time_limit(0); for($i=1;$i<=10000;$i++){ Yii::$app->db->createCommand()->insert("user",[ 'username'=>'abei'.$i, 'province'=>'北京市' ])->execute(); }
執(zhí)行后,你知道我們的數(shù)據(jù)庫(kù)里有10000條記錄了,現(xiàn)在我們開始對(duì)比。
對(duì)比
為了方便,我們?cè)谝晥D里直接寫循環(huán)體,如下面代碼,你一定可以看懂。
$query = new \yii\db\Query(); $query->from('user'); foreach($query->all() as $user){ echo $user['username']; echo "<br/>"; }
結(jié)果那?
占有內(nèi)存 15.306MB
OK,現(xiàn)在開始看看batch和each的戲法,到底有沒有節(jié)省內(nèi)存。
$query = new \yii\db\Query(); $query->from('user'); foreach($query->batch() as $users){ foreach($users as $user){ echo $user['username']; echo "<br/>"; } }
結(jié)果那?
果然,節(jié)省了一半的內(nèi)存?,F(xiàn)在僅僅占用了8.077MB
同樣的
$query = new \yii\db\Query(); $query->from('user'); foreach($query->each() as $user){ echo $user['username']; echo "<br/>"; }
each的表現(xiàn)也相當(dāng)不錯(cuò)
結(jié)果
當(dāng)我們遇到需要一次讀取出所有的或是大批量數(shù)據(jù)的時(shí)候,可以考慮使用batch和each,這一點(diǎn)點(diǎn)代碼的優(yōu)化幫你省掉了一半的內(nèi)存。
PHP中文網(wǎng),有大量免費(fèi)的Yii入門教程,歡迎大家學(xué)習(xí)!
Atas ialah kandungan terperinci yii2 batch和each的區(qū)別是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bitcoin lebih sesuai untuk pelaburan nilai jangka panjang dan pemeliharaan aset, sementara Dogecoin sesuai untuk aplikasi inovatif perdagangan jangka pendek dan komuniti yang didorong oleh masyarakat. 1. Bitcoin dikeluarkan oleh Satoshi Nakamoto pada tahun 2009, yang bertujuan untuk membina sistem pembayaran digital peer-to-peer yang terdesentralisasi, yang dikenali sebagai "emas digital". Dogecoin dilahirkan pada tahun 2013 dalam budaya meme internet. Ia pada mulanya diposisikan sebagai mata wang komuniti yang menarik, dan kemudian secara beransur -ansur menjadi arus perdana. 2. Jumlah bitcoin ditetapkan pada 21 juta, dan output duit syiling baru dikurangkan melalui mekanisme separuh, yang terhad; Dogecoin mengamalkan model inflasi yang berterusan, dengan penambahan tetap kira -kira 5.2 bilion syiling setiap tahun, yang digunakan untuk menggalakkan pelombong untuk mengambil bahagian dan penyelenggaraan rangkaian. 3. Masa pengesahan urus niaga bitcoin adalah panjang, dan yuran terjejas dengan ketara oleh kesesakan rangkaian; Masa blok Dogecoin adalah 1 minit, dan kelajuan urus niaga lebih cepat.

Pertukaran yang terdesentralisasi (DEX) telah menarik perhatian dalam bidang cryptocurrency dalam beberapa tahun kebelakangan ini. Tidak seperti pertukaran berpusat tradisional (CEX), DEX beroperasi di blockchain dan bertujuan untuk menyediakan cara untuk berdagang tanpa perantara yang mempercayai. Apabila pengguna berdagang pada DEX, aset biasanya disimpan di dalam dompet mereka dan bukannya disimpan dalam akaun escrow di bursa. Model ini membawa kelebihan keselamatan yang unik, tetapi ia juga datang dengan cabaran baru.

Bagi pemula yang baru untuk aset digital, mereka sering mendapat kesukaran pilihan ketika menghadapi pelbagai mata wang arus perdana. Artikel ini akan membandingkan tiga mata wang yang popular: Bitcoin, Ethereum, dan Dogecoin secara terperinci dari aspek ciri -ciri teknikal, senario penggunaan, penilaian pasaran, dan lain -lain untuk membantu pengguna memahami perbezaan utama antara mereka dan kelebihan dan kekurangan masing -masing.

Lingkaran mata wang nampaknya mempunyai ambang yang rendah, tetapi sebenarnya ia menyembunyikan banyak istilah dan logik yang kompleks. Ramai orang baru "tergesa -gesa ke pasaran" dalam kekeliruan dan akhirnya kehilangan wang. Artikel ini akan memberikan penjelasan yang komprehensif mengenai istilah umum dalam bulatan mata wang, logik operasi pembuat wang sebenar, dan strategi kawalan risiko praktikal untuk membantu pembaca menjelaskan idea mereka dan mengurangkan risiko pelaburan.

Baru -baru ini, perbincangan dalam bidang aset digital tetap panas. Dogecoin Doge, sebagai salah satu tumpuan yang paling popular, telah menjadi persoalan yang banyak diterokai oleh ramai orang. Di manakah ia "menetap"? Apakah hubungan dengan platform perdagangan terkemuka semasa, Binance? Untuk menjawab soalan-soalan ini, kita perlu menjalankan analisis mendalam dari dua dimensi logik teknikal yang mendasari aset digital dan ekologi platform, bukan hanya tinggal dalam penampilan.

Perbezaan teras antara USDC, DAI dan TUSD terletak pada mekanisme terbitan, aset cagaran dan ciri -ciri risiko. 1. USDC adalah stablecoin berpusat yang dikeluarkan oleh Circle dan dijaga oleh wang tunai dan bon perbendaharaan jangka pendek. Kelebihannya adalah pematuhan dan kecairan yang telus, kuat, dan kestabilan yang tinggi, tetapi terdapat risiko semakan berpusat dan kegagalan titik tunggal; 2. Dai adalah stablecoin yang terdesentralisasi, yang dihasilkan melalui protokol Makerdao, dan cagaran adalah aset crypto. Ia mempunyai kelebihan anti penapisan, ketelusan rantaian, dan bebas kebenaran, tetapi ia juga menghadapi risiko sistemik, pergantungan kepada aset terpusat dan isu kerumitan; 3. TUSD adalah stablecoin berpusat, menekankan bukti rizab rantaian masa nyata, memberikan pengesahan ketelusan frekuensi yang lebih tinggi, tetapi mempunyai bahagian pasaran yang kecil dan kecairan yang lemah. Ketiga adalah jenis cagaran dan desentralisasi

Duit syiling yang stabil mengekalkan kestabilan harga dengan menambat mata wang fiat seperti dolar AS, yang terutamanya dibahagikan kepada tiga kategori: 1. 2. Jenis pemulihan cryptocurrency seperti DAI; 3. Jenis algoritma mempunyai risiko yang lebih tinggi. Stablecoins arus perdana termasuk USDT dengan nilai pasaran tertinggi dan kecairan terbaik. USDC terkenal dengan pematuhan dan ketelusannya. Dai bergantung pada mekanisme yang terdesentralisasi. TUSD mengamalkan audit masa nyata di rantaian. BUSD secara beransur -ansur menarik diri dari pasaran kerana pengawasan. USDP terkenal dengan pematuhan dan keselamatannya yang tinggi. Kedua -duanya diedarkan secara meluas di bursa arus perdana.

Dalam dunia perdagangan mata wang digital, pemahaman dan kemahiran dalam menggunakan jenis pesanan yang berbeza adalah kunci kepada urus niaga yang berjaya. Ia asas seperti memandu kenderaan memerlukan menguasai pemecut dan brek. Pesanan pasaran dan pesanan terhad adalah dua alat yang paling asas dan berkuasa yang semua peniaga mesti menguasai. Sama ada anda beroperasi di platform perdagangan arus perdana seperti Binance Binance, Ouyi Okx, Huobi, atau Gate.io Open Door, mereka semua membentuk teras strategi perdagangan anda.
