public function get_last($limit)
{
return $this->db->select('h.*')
->select('c.city_name, c.city_slug')
->select('p.state_name, p.state_slug')
->select('ca.title as category_title, ca.slug as category_slug, ca.image as category_image')
->select('up.name as user_name, u.email as user_email')
->select('COUNT(pr.company_id) as products')
->from($this->_table . ' as h')
->join($this->_table_state_cities . ' as c', 'h.city_id = c.city_id', 'left')
->join($this->_table_state . ' as p', 'h.state_id = p.state_id', 'left')
->join($this->_table_relations . ' as r', 'h.id = r.company_id', 'left')
->join($this->_table_categories . ' as ca', 'ca.id = r.category_id', 'left')
->join($this->_table_users . ' as u', 'h.user = u.id', 'left')
->join($this->_table_user_profiles . ' as up', 'h.user = up.user_id', 'left')
->join($this->_table_products . ' as pr', 'h.id = pr.company_id', 'left')
->where('date <', date('Y-m-d H:i:s'))
->where('h.status', 'published')
->order_by('created_at', 'desc')
->group_by('h.id')
->limit($limit)
->get()
->result_array();
} Hız konusunda Yardım
5
●335
- 29-01-2015, 20:20:20Kimlik doğrulama veya yönetimden onay bekliyor.aşağıdaki kodları kullanan ücretsiz bir script var elimde. listeleme çok yavaş oluyor bu kodlama yapısına uygun olarak hızlı ve değişik şekillerde nasıl kullanabilirim. fazla iyi sayılmam yardım eder örnek olarak verirseniz memnun olurum teşekkürler.
- 29-01-2015, 20:29:28Üyeliği durdurulduPHP:OOP, yani spagettiye göre daha performanslı bir yazış biçimidir. Scriptte tek tek mysql komutlarını girmektense tek fonksiyon içine yazmışlar bundan ötürü yavaşlıyor olabilir.
Şimdi biriyle anlaşıp scriptteki mysql komutlarını manuel olarak hazırlamasını istemelisiniz. Böylece performans kazanabilirsiniz.
.. Yada mysql cache yaparak kodu değiştirmeden performans kazanabilirsiniz. Forumda birisi konu açmıştı 6$'lık script satıyordu. - 29-01-2015, 20:37:51Verileriniz cok ise mysql indexleme ya da view olusturarak kullanacaginiz veriler ile hiz kazanirsiniz.akrepx adlı üyeden alıntı: mesajı görüntüle
Sent from my GT-I9200 using Tapatalk - 29-01-2015, 21:51:507 tane left join gördüm alt alta. fazlası da var mı bilmem ancak sorgunun kasması normal.
mantığı değiştirmeniz gerek öncelikle. Misal cities için farklı bir fonksiyon yapabilirsiniz. static değişkende tutarsanız bir nevi cache gibi çalışacaktır.
static $sehirler;
if(isset($sehirler[$gelen]])) return $sehirler[$gelen];
else {
// select işlemleri
}
gibi. böylece sayfadaki tüm sorgularda ortak cities çalışacağından bir left joinden kurtulmuş olursun. Benzer şekillerde bu birleştirmeleri azaltmak ilk amacın olmalı. - 30-01-2015, 00:12:35Kimlik doğrulama veya yönetimden onay bekliyor.Orm Kullan. (Bkn: http://www.oguzkoc.com.tr/php-orm-ob...ional-mapping/)