PHP+Memory Cache+PostgreSQL Kullanarak Performanslı Veritabanı Uygulaması Geliştirme

Benzer belgeler
Oracle'dan PostgreSQL'e geçiş

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

PostgreSQL ve PL/pgSQL

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

İleri Seviyede PostgreSQL Yönetimi Devrim GÜNDÜZ. PostgreSQL Geliştiricisi PostgreSQL Markafoni

PostgreSQL ve PL/pgSQL

PostgreSQL ile NoSQL. Gereksinimlerinizi Karşılamak

PostgreSQL'de Güvenlik

Oracle'dan PostgreSQL'e geçiş

Bölüm 10: PHP ile Veritabanı Uygulamaları

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

PostgreSQL Veritabanı Sunucusu. Başarım Arttırma Yöntemleri

Postgresql: Web Programcısı için Gündelik İpuçları Postgres 2014 Türkiye

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

PL/pgSQL SQL Yordamsal Dili

Veri Tabanı-I 5.Hafta

VERİTABANI Veritabanı Yönetimi

JBoss Seam. Melih Sakarya

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

KULLANICI TANIMLI FONKSİYONLAR (Devam)

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

HP Yazılım Zirvesi - İstanbul 20 May Wyndham Grand Levent Erdem Alaşehir / Finansbank Güvenlik Olay Korelasyonunda Büyük Veri Kullanımı

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Ç NDEK LER 1 PHP 6 1 PHP Nedir? 1 PHP nin Tarihi 2 PHP nin Avantajlar 4 PHP nin Dezavantajlar 4 PHP nin Çal flma Mant 6 PHP nin Çal flma Aral 8 PHP

KULLANICI TANIMLI FONKSİYONLAR (Devam)

VERİ TABANI ve YÖNETİMİ

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

Red Hat Jboss Data Grid: Uygulamalarınıza Süper Güç Katın!

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. SQLite Veritabanı. BLM401 Dr.Refik SAMET

yeni_uye_kayit.ascx UserControl sayfamızda, kaydedilmek istenen üye eğer daha önce veritabanımızda kayıtlı ise bunu buldurup kullanıcıyı uyaralım;

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

Android Database SQLLite

TEMPLATES. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

SQL Stored Procedure

1 ORACLE 11G DATABASE SERVER LE

RRDTool Kullanımı ve ULAKNET İstatistikleri. Çağlar GÜLÇEHRE TÜBİTAK ULAKBİM-ATB

16 Ekim 2010 Özgür Web Günleri Yeditepe Üniversitesi. Nosql Veritabanları

Üst Düzey Programlama

VeritabanıSunucusu ve PHP Programlama Dili

«BM364» Veritabanı Uygulamaları

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

NoSql ve MongoDB. Saygın Topatan

«BM364» Veritabanı Uygulamaları

PHP ye Giriş. Hidayet Doğan

emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı

TESİ. aşağıdaki. UML deki. karşılığı. 1. yapılsın: sorgular 0..* * aşağıdakilerin. a) S1 ve S2 b) S1 ve S2 0..*

Kaya Oğuz.

SQL Server 2008 ile Tanışma"

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

SQL e Giriş. Uzm. Murat YAZICI

Advanced Oracle SQL Tuning

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Oracle Enterprise Linux 5 Kurulumu

İNTERNET PROGRAMCILIĞI - II

MOBİL UYGULAMA GELİŞTİRME

PHP ile İnternet Programlama

NESNEYE DAYALI VERİTABANLARI

EnterpriseDB Kalitesi ile Tanıştırma. Devrim GÜNDÜZ Principal Systems Engineer EnterpriseDB

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

FreeBSD üzerinde PostgreSQL Temel Kurulum ve Yapılandırması

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

UTL_FILE PERFORMANSI

KULLANICI TANIMLI FONKSİYONLAR

PHP ile Programlama (I/III)

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

Anadolu Liselerine Öğretmen Atama İşleminin Nesneye Yönelimli Veritabanı Programlama Kullanılarak Gerçekleştirilmesi

Veri Yapıları ve Algoritmalar dönem

LINQ (Temel Kavramlar)

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

JDBC kütüphanesi, her görev için genellikle veritabanı kullanımı ile ilişkili API leri içerir:

Öğr. Gör. Serkan AKSU 1

C#.Net & Linq (Language Integrated Query)

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

POSTGRESQL Veritabanı Sunucusu ve PostgreSQL ile Kurumsal Çözümler


VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)


ç ç ç ç Ö ç ç Ş ç ç Ç

.com. Kurumsal Java. Özcan Acar com

Bölüm 9. Altprogramlar ISBN

PostgreSQL'de Uygulamalı. (Streaming Replication. Standby)

ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ

Görsel Programlama (Visual Programming)

Veritabanı Yönetim Sistemleri (PL/pgSQL - SQL Procedural Language)

1) HTTP nedir? ... 2) SSL nedir? ... 3) Javascript, Java'nın kolaylaştırılmış halidir. Doğru... Yanlış... 4) Ajax nedir?

SNORT 2.3, ACID FEDORA 3 PF, SNORTSAM OPENBSD 3.6

1 WINDOWS SERVER 2012 GENEL BAKIŞ 1 Giriş 1 Bu Kitapta 5 Çıkış Hikâyesi 6 Sürümler 7

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Transkript:

PHP+Memory Cache+PostgreSQL Kullanarak Performanslı Veritabanı Uygulaması Geliştirme M.Atıf CEYLAN SitenizOlsun.com

Giriş Sunum İçeriği Performanstan ne anlıyoruz? Vertitabanı Performansını Artırmak PHP performansını artırmak için accelerator kullanmak PHP performansını artırmak için etkin bellek kullanımı

Performanstan ne anlıyoruz? İhtiyaç fazlası tuning takıntılarımız

Vertitabanı Performansını Artırma Donanımı ve Sistemi Etkin Kullanma Mümkün olduğunca fazla bellek kullanmak, Disk seçeneklerini gözden geçirmek (ssd, raid, veri, index ve logları birden fazla diske bölme), File System Tercihi ve Opsiyonları (xfs, noatime,barrier, stripe size, block size seçenekleri) Veritabanının Sunduğu Nimetlerden Faydalanma Partitioning Indexler Prepare Statements Tablespace Konfigurasyon Parametrelerini Düzenleme Unix Socket kullanımı Bağlantılarda SSL Kullanımı shared_buffers, work_mem, maintenance_work_mem, temp_buffers, effective_cache_size

PHP performansını artırmak için accelerator kullanmak APC (Alternative PHP Cache) Opcode için APC kullanımı Data caching için APC kullanımı APC Eklentisi Konfigürasyonu apc.enabled="1" apc.shm_segments="1" apc.shm_size="32" apc.num_files_hint="1024" apc.ttl="3600" apc.max_file_size="1m" apc.stat="1"

Facebook APC (opcode) Benchmark'ı

Data Cache İçin APC ve Memcached Kullanmak Memcached nedir? Distributed key-value memory database. Metin ve obje saklayabiliyor. TCP ve UDP protokollerini kullanarak sunuculuk yapıyor. Kimler kullanıyor? Youtube,LiveJournal,Facebook,Wikipedia,Flickr,Twitter,Digg, WordPress.com Hangi diller kullanıyor? C/C++, PHP, JAVA, Python, Ruby, Perl Avantajları nelerdir? Birden fazla client tarafindan ortak cache kullanımı (ortak session bilgisi tutmak icin iyi bir yöntem) Cluster Yönetmek için telnet veya nc gibi bir uygulamanın yetmesi

Kullanım Şeması

Memcached Örneği $memcache = new Memcache; $memcache->connect('127.0.0.1', 11211) or die ("Baglanamadi"); $query = "SELECT * FROM cache_test where id=123"; $key = md5($query); $get_result = array(); $get_result = $memcache->get($key); if ($get_result) { echo $get_result['first_name']. "\n"; echo $get_result['last_name']. "\n"; } else { include('db.php'); $result = pg_query($query); $row = pg_fetch_array($result); echo $get_result['first_name']. "\n"; echo $get_result['last_name']. "\n"; } $memcache->set($key, $row, false, 600);

APC Örneği $query = "SELECT * FROM cache_test where id=123"; $key = md5($query); $get_result = array(); $get_result = apc_fetch($key); if ($get_result) { echo $get_result['first_name']. "\n"; echo $get_result['last_name']. "\n"; } else { include('db.php'); $result = pg_query($query); $row = pg_fetch_array($result); echo $get_result['first_name']. "\n"; echo $get_result['last_name']. "\n"; } apc_add($key, $row, 600);

APC Örneği $query = "SELECT * FROM cache_test where id=123"; $key = md5($query); $get_result = array(); $get_result = apc_fetch($key); if ($get_result) { echo $get_result['first_name']. "\n"; echo $get_result['last_name']. "\n"; } else { include('db.php'); $result = pg_query($query); $row = pg_fetch_array($result); echo $get_result['first_name']. "\n"; echo $get_result['last_name']. "\n"; } apc_add($key, $row, 600);

Pgmemcache Projesi Proje sayfası: http://pgfoundry.org/projects/pgmemcache/ CREATE OR REPLACE FUNCTION mc_init() RETURNS VOID AS BEGIN IF memcache_init() THEN PERFORM memcache_server_add( 10.0.0.2, 11211 ); PERFORM memcache_server_add( 10.0.0.3, 11211 ); END IF; RETURN; END; LANGUAGE plpgsql ; ------------------------------------------------------------------------------------------------ CREATE FUNCTION passwd_upt RETURNS TRIGGER AS BEGIN IF OLD.passwd!= NEW.passwd THEN PERFORM mc_init(); PERFORM memcache_replace( user_id_ NEW.user_id _password, NEW.passwd); END IF; RETURN NEW; END; LANGUAGE plpgsql ;

Diğer Pg Memcached Kullanım Şekilleri pqc http://code.google.com/p/pqc/ PERL create or replace function memcache_set(_key text, _value bytea) returns int as $$ use Cache::Memcached; my ($_key, $_value) = @_; $m = new Cache::Memcached { 'debug' => 0 }; my @list = ("10.0.0.2:11211", "10.0.0.3:11211"); my $servers = \@list; $m->set_servers($servers); $m->enable_compress(0); if ($m->set($_key, $_value)) { return 0; } else{ return 1; } $$ language plperlu;

Diğer Pg Memcached Kullanım Şekilleri create or replace function memcache_get(_key text) returns bytea as $$ use Cache::Memcached; my ($_key) = @_; $m = new Cache::Memcached { 'debug' => 0 }; my @list = ("127.0.0.1:9996", "127.0.0.1:9997"); my $servers = \@list; $m->set_servers($servers); $m->enable_compress(0); my $val = $m->get($_key); if (defined($val)) { return $val; } else{ return undef; } $$ language plperlu;

Sorular veteşekkür M.Atıf CEYLAN SitenizOlsun.com