Friday, February 8, 2013

Framework Code Igniter (CI)

CodeIgniter rmerupakan framework PHP yang kuat dengan footprint yang sangat kecil, dibangun untuk PHP coders yang membutuhkan toolkit yang sederhana dan eleganuntuk membuatfitur lengkap aplikasi web.
Pada Training ini, materi yang disajikan cukup mudah bagi pemula karena CI ini mengikuti pola MVC (Model View Controller) sehingga memungkinkan dalam memudahkan pembelajaran.
 

CONTENT
1. Getting started with codelgniter
    1.1 Introducting Model View Controller (MVC)
    1.2 Models: Data abstraction layer
    1.3 Template files
    1.4 Format code
2. Learning the Libraries
    2.1 Inroduction a Libraries
    2.2 Benchmarking Class
    2.3 Input and Security Class
    2.4 Email Class
    2.5 File Upload Class
    2.6 Image Manipulation Library
    2.7 Pagination Class
    2.8 Session Class
3. Form Validation and Database Interaction
    3.1 Form Validation Library
    3.2 Validation rules
    3.3 callbacks
    3.4 Database Interaction
4. User Authentication
    4.1 Creating and connecting to the database
    4.2 Front end code (Login, Register and Logout function)
    4.3 External Authentication (Twitter oAuth, Facebook Connect)
5. Application security
    5.1 CodeIgnite’s defenses
    5.2 Strong password policies
    5.3 Strong password securely
    5.4 Database security
    5.5 Cross-site Scriping (XSS)
    5.6 Update System

Thursday, February 7, 2013

Microsoft Access

Training / Kursus Microsoft (Ms) Access ( 21 Jam - 7 Pertemuan )
Biaya Training : Rp. 650.000,- / Peserta
Microsoft Access adalah aplikasi database relational yang dapat digunakan untuk menyimpan data.
Peserta akan diajarkan bagaimana cara membuat  dan mendisain data yang benar, cara mencari data dan memanipulasi data.
Course  Topics :
Introduction to Database System
  • Introduction to Database
  • Ms Access Overview
  • Maintaining Ms Access
Table
  • Create Table
  • Data Type
  • Primary Key
  • Validation Rule
  • Input Mask
  • Table Property
Data Relational and Query
  • Foreign Key
  • Type of Relationship
  • Simple Query
  • Criteria
Query
  • Formula
  • Join
  • Group By 
  • Aggregate Function
  • Cross Tab Query
Query and Report
  • Creating Report
  • Report Section
  • Grouping in Report

Pemograman PHP & MySQL II ( PHP Security )

Pembangunan sebuah sistem berbasis web PHP akan sia-sia tanpa diimbangi dengan keamanan yang memadai sekalipun sistem tersebut compleks, lengkap dengan feature dan menarik misalnya, ketika mendapat berbagai serangan (attack) maka fatalah akibatnya. Oleh sebab itu, kemanan mutlak diperlukan dalam suatu sistem berbasis web PHP baik untuk pertahan terhadap sistem itu sendiri maupun database MySQL-nya, sehingga sistem yang Anda kembangkan menjadi tangguh dan memiliki siklus hidup yang lebih lama.

Pemograman PHP & MySQL I

Saat ini web merupakan salah satu sumber informasi yang banyak digunakan oleh pengguna informasi, sebagai aplikasi, web dibuat dengan tujuan agar si pengguna informasi bisa mengakses informasi dari penyedia informasi dengan mudah dan cepat yaitu melalui dunia internet. dengan pemograman PHP maka web yang ditampilkan tidak hanya berisi informasi statis tapi data yang

Pemograman HTML

HyperText Markup Language (HTML) adalah sebuah bahasa markah yang digunakan untuk membuat sebuah halaman web, menampilkan berbagai informasi di dalam sebuah penjelajah web Internet dan pemformatan hiperteks sederhana yang ditulis dalam berkas format ASCII agar dapat menghasilkan tampilan wujud yang terintegerasi. Dengan kata lain, berkas yang dibuat dalam perangkat lunak pengolah kata dan disimpan dalam format normal sehingga menjadi halaman web dengan perintah-perintah HTML
>Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang disebut dengan SGML (Standard Generalized Markup Language), HTML adalah sebuah standar yang digunakan secara luas untuk menampilkan halaman web. HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). HTML dibuat oleh kolaborasi Caillau TIM dengan Berners-lee Robert ketika mereka bekerja di CERN pada tahun 1989 (CERN adalah lembaga penelitian fisika energi tinggi di Jenewa).[1]

Variabel dalam PHP

Variabel merupakan suatu tempat penyimpanan data sementara yang datanya dapat dipanggil berulang kali atau diubah sesuai keinginan pemogram. setiap bahasa pemograman memiliki aturannya sendiri dalam menuliskan variabel , berikut adalah aturan yang digunakan untk menuliskan variabel didalam bahasa pemograman PHP :

Hello Word

PHP adalah bahasa pemograman open source yang mudah digunakan, perintah perintah PHP dapat digunakan diantara tag HTML. untuk menggunakan perintah PHP sebelumnya anda harus menggunakan tanda . contoh penggunaan perintah PHP diantara tag HTML.


Hello word

       echo "Hello World";
?>



Outputnya : "Hello Word";

Mengambil karakter tertentu PHP

Ada kalanya didalam programming kita ingin mengambil beberapa karakter dari suatu kalimat, misalkan anda ingin mengambil data tahun dari string "2012-01-02" . ada satu fungsi didalam pemograman PHP yaitu fungsi substr($kalimat,posisi awal, jumlah karakter), berikut adalah contoh penggunaan dari fungsi tersebut : 


$kalimat = "2012-01-02";

$kata = substr($kalimat,1,4);

echo $kata;

?>

Output : " 2012 "

 

Tuesday, January 29, 2013

Pengertian Numeric Distribution


Belakangan sangat ramai sekali diperbincangkan dalam dunia bisnis yang berhubungan dengan distribution. para marketing dan sales sangat membutuhkan sekali data ini. apa sih ND itu ?

ND adalah singkatan dari numeric distribution yaitu banyaknya outlet yang bertransaksi dengan nominal tertentu pada periode yang di pilih. data ini biasanya digunakan untuk analisis data. logikanya jika semakin banyak outlet dari distributor maka ini akan berakibat pada naiknya penjualan. oleh sebab itulah perlu adanya kontrol untuk outlet tersebut apakah outlet itu bertransaksi atau tidak . data ini juga bisa digunakan sebagai warning para area sales manager untuk memanage outlet diarea yang dia pimpin. 

trus apa hubungannya dengna dunia IT? jelas berhubungan sekali. aplikasi yang banyak kita temui sampai yang terintegrated seperti SAP, adempiere dan sebagainya itu belum menjawab kebutuhan dari pengambil keputusan . makanya sekrang banyak bermuncunlan istilah business inteligen, business inteligent sendiri didukung oleh data tiga dimensi yang sering kita sebut OLAP .

Thursday, December 20, 2012

AIR INI HANYA UNTUK INSINYUR!!" ....

Bismillahir-Rahmaanir-Rahim … Di sebuah perusahaan pertambangan minyak di
Arab Saudi, di akhir tahun40-an. Seorang pegawai rendahan, remaja lokal
asli Saudi, kehausan dan bergegas mencari air untuk menyiram tenggorokannya
kering. Ia begitu gembira ketika melihat air dingin yang tampak didepannya
dan bersegera mengisi air dingin ke dalam gelas.

Belum sempat ia minum, tangannya terhenti oleh sebuah hardikan: "Hei, kamu
tidak boleh minum air ini. Kamu cuma pekerja rendahan. Air ini hanya khusus
untuk insinyur" Suara itu berasal dari mulut seorang insinyur Amerika yang
bekerja di perusahaan tersebut.

Remaja itu akhirnya hanya terdiam menahan haus. Ia tahu ia hanya anak
miskin lulusan sekolah dasar. Kalaupun ada pendidikan yang dibanggakan, ia
lulusan lembaga Tahfidz Quran, tapi keahlian itu tidak ada harganya di
perusahaan minyak yang saat itu masih dikendalikan oleh manajeman Amerika.

Hardikan itu selalu terngiang di kepalanya. Ia lalu bertanya-tanya: Kenapa
ini terjadi padaku? Kenapa segelas air saja dilarang untuk ku? Apakah
karena aku pekerja rendahan,sedangkan mereka insinyur ? Apakah kalau aku
jadi insinyur aku bisa minum? Apakah aku bisa jadi insinyur seperti mereka?

Pertanyaan ini selalu tengiang-ngiang dalam dirinya. Kejadian ini akhirnya
menjadi momentum baginya untuk membangkitkan "SIKAP POSITIF" . Muncul
komitmen dalam dirinya. Remaja miskin itu lalu bekerja keras siang hari dan
melanjutkan sekolah malam hari. Hampir setiap hari ia kurang tidur untuk
mengejar ketertinggalannya.

Tidak jarang olok-olok dari teman pun diterimanya. Buah kerja kerasnya
menggapai hasil. Ia akhirnya bisa lulus SMA. Kerja kerasnya membuat
perusahaan memberi kesempatan padanya untuk mendalami ilmu. Ia dikirim ke
Amerika mengambil kuliah S1 bidang teknik dan master bidang geologi. Pemuda
ini lulus dengan hasil memuaskan. Selanjutnya ia pulang kenegerinya dan
bekerja sebagai insinyur.

Kini ia sudah menaklukkan "rasa sakit"nya, kembali sebagai insinyur dan
bisa minum air yang dulu dilarang baginya. Apakah sampai di situ saja.
Tidak, karirnya melesat terus. Ia sudah terlatih bekerja keras dan mengejar
ketinggalan, dalam pekerjaan pun karirnya menyusul yang lain.

Karirnya melonjak dari kepala bagian, kepala cabang, manajer umum sampai
akhirnya ia menjabat sebagai wakil direktur, sebuah jabatan tertinggi yang
bisa dicapai oleh orang lokal saat itu.
Ada kejadian menarik ketika ia menjabat wakil direktur. Insinyur Amerika
yang dulu pernah mengusirnya, kini justru jadi bawahannya.

Suatu hari insinyur tersebut datang menghadap karena ingin minta izin libur
dan berkata; "Aku ingin mengajukan izin liburan. Aku berharap Anda tidak
mengaitkan kejadian air di masa lalu dengan pekerjaan resmi ini. Aku
berharap Anda tidak membalas dendam, atas kekasaran dan keburukan
perilakuku di masa lalu"

Apa jawab sang wakil direktur mantan pekerja rendahan ini: "Aku ingin
berterimakasih padamu dari lubuk hatiku paling dalam karena kau melarang
aku minum saat itu. Ya dulu aku benci padamu. Tapi, setelah izin Allah,
kamu lah sebab kesuksesanku hingga aku meraih sukses ini.

Kini sikap positfnya sudah membuahkan hasil, lalu apakah ceritanya sampaidi
sini?

Tidak. Akhirnya mantan pegawai rendahan ini menempati jabatan tertinggi di
perusahaan tersebut. Ia menjadi Presiden Direktur pertama yang berasal dari
bangsa Arab.

Tahukan Anda apa perusahaan yang dipimpinnya? Perusahaan itu adalah Aramco
(Arabian American Oil Company)perusahaan minyak terbesar di dunia.

Ditangannya perusahaan ini semakin membesar dan kepemilikan Arab Saudi
semakin dominan. Kini perusahaaan ini menghasilakn 3.4 juta barrels
(540,000,000 m3) dan mengendalikan lebih dari 100 ladang migas di Saudi
Arabia dengan total cadangan 264 miliar barrels (4.20×1010 m3) minyak dan
253 triliun cadangan gas.

Atas prestasinya Ia ditunjuk Raja Arab Saudi untuk menjabat sebagai Menteri
Perminyakan dan Mineral yang mempunyai pengaruh sangat besar terhadap dunia.

Ini adalah kisah Ali bin Ibrahim Al-Naimi yang sejak tahun 1995 sampai saat
ini menjabat Menteri Perminyakan dan Mineral Arab Saudi.

Terbayangkah, hanya dengan mengembangkan hinaan menjadi hal yang positif,
isu air segelas di masa lalu membentuknya menjadi salah seorang penguasa
minyak yang paling berpengaruh di seluruh dunia.

Itulah kekuatan"SIKAP POSITIF"

Kita tidak bisa mengatur bagaimana orang lain berperilaku terhadap kita …

Kita tidak pernah tahu bagaimana keadaan akan menimpa kita ….
Tapi kita sepenuhnya punya kendali bagaimana menyikapinya … Apakah ingin
hancur karenanya? Atau bangkit dengan semangat "Bersikap Positif" dan
menjadi bagian dari solusi …

Wednesday, December 19, 2012

Disable Interactive Service Detection

Saat bekerja dengan windows vista atau windows 7 tiba2 muncul pesan yang mengganggu "Interactive service detections" sudah di pilih ask me latter atau di close nanti akan muncul lagi.  disini saya akan tunjukan bagaimana cara menghentikannya.

Wednesday, November 7, 2012

Tutorial Borland Delphi

Malem2 saat ini masih dikantor proses data , sambil tunggu prosesnya selesai lebih baik update blog . buat rekan rekan yang mau belajar delphi , berikut adalah daftar link bacaan untuk agan-agan belajar :

  1. http://www.schwartzman.org.br/simon/delphi/

  2. http://www.jasontpenny.com/Delphi/

  3. http://www.efg2.com/Lab/Library/Delphi/Algorithms/index.html

  4. http://www42.tok2.com/home/okapony/download/

  5. http://www.bloodshed.net/delphi/index.html

  6. http://delphiforfun.org/Programs/Indices/programIndex.htm

  7. http://www.liacs.nl/~svdmaar/hci/

  8. http://www.rl7.bmstu.ru/archives/Delphi/

  9. http://www6.uniovi.es/delphi/ftp/d20free/

  10. http://www.rnikulin.ru/files/programmer/delphi/

  11. http://ftp.newbielabs.com/Delphi%20Gecko%20SDK/

  12. http://www.cesarkallas.net/arquivos/livros/informatica/delphi

  13. http://www.happyarts.com/delphi/

  14. http://www.discom.com/delphi/

  15. http://stmik-banjarbaru.ac.id/unduh_kuliah/index.php?dir=Delphi/Rahmadi%20S.Kom/

  16. http://www.delphisources.ru/pages/faq/master-delphi-7/content/LiB0098.html

  17. http://www.delphi7.nl/index.php

  18. http://www.greecetravel.com/delphi/

  19. http://ftp.riken.jp/pc/simtelnet/win95/delphi/

  20. http://irtfweb.ifa.hawaii.edu/~tcs3/tcs3/vendor_info/

  21. http://ftp.sunet.se/pub/simtelnet/win3/delphi/

  22. http://delphi.icm.edu.pl/

  23. http://zeus.nyf.hu/~bajalinov/my_special/SW/Delphi%20eBooks/Delphi%207/

  24. http://zeus.nyf.hu/~bajalinov/my_special/SW/Delphi%20eBooks/Delphi/

  25. http://leetupload.com/dbindex2/index.php?dir=Win32/Sources/Delphi/

  26. http://koti.mbnet.fi/akini/delphi/dspack/

  27. http://www6.uniovi.es/delphi/ftp/tools/?N=D

  28. http://www.delphiforfun.org/programs/index.htm

  29. http://xmlsoft.org/sources/win32/Delphi/

  30. http://ftp.riken.jp/pc/simtelnet/winxp/delphi/

  31. http://is.njit.edu/pubs/delphibook/

  32. http://pedestre.info/.delphi/

  33. http://dbsvr.clhs.tyc.edu.tw/delphi/

  34. http://www.pedestre.info/

  35. http://ensino.univates.br/~edsonahlert/delphi/

  36. http://printinformatica.com.br/

  37. http://www.koehlke.com/pdf/

  38. http://ftp-developpez.com/delphi/sources/

  39. http://www.helloworld.ru/texts/comp/lang/delphi/


Happy coding.. selamat belajar ya ..tetap semangat...

Tuesday, November 6, 2012

Mencari selisih dua buah tanggal dengan sql server

Apakah anda memerlukan proses perhitungan perbedaan hari, bulan atau tahun di antara dua data tanggal pada SQL Server ? Jika Ya maka anda akan memerlukan fungsi DateDiff untuk keperluan ini.

Fungsi DateDiff SQL Server menghasilkan data angka selisih tanggal dan waktu di antara dua tanggal.

Cara penulisan : DateDiff(datepart, startdate, enddate)

Argument:

  • datepart parameter yang menentukan pada bagian mana bagian tanggal untuk dihitung perbedaanya. Berikut adalah daftar dateparts dan singkatannya.















































    DatepartSingkatan
    Yearyy, yyyy
    quarterqq, q
    Monthmm, m
    dayofyeardy, y
    Daydd, d
    Weekwk, ww
    Hourhh
    minutemi, n
    secondss, s
    millisecondms


  • startdate adalah tanggal awal. startdate adalah sebuah expressi yang menghasilkan tipe data datetime atau smalldatetime atau karakter string dalam format tanggal. Karena akurasi smlldatetime sampai pada menit maka ketika smalldatetime digunakan detik dan milidetik akan bernilai 0.

  • enddate adalah tanggal akhir untuk proses perhitungan. enddate adalah sebuah expressi yang menghasilkan tipe data datetime atau smalldatetime atau karakter string dalam format tanggal.


Tipe data hasil fungsi DateDiff adalah nilai Integer.

Catatan:
startdate dikurangi oleh enddate. Jika startdate lebih kecil dari enddate maka nilai hasil akan negatif.

Contoh:
Contoh berikut menentukan perbedaan dalam hari antara tanggal saat ini dengan tanggal publication pada tabel titles di database pudb pada SQL server.

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

Tuesday, October 23, 2012

Pivot tables in SQL Server. A simple sample.

The other day I was wondering about how to use Pivot tables in SQL Server with SQL, and I didn’t find any simple examples on this. So I had to do my own and I thought I’d share this here and also as to have as a future reference for myself. So let’s start with a fictional scenario.In this case we have lots of vendors who report in their daily income to us, for this we have a simple table that looks like this.

SQL Product Highlight Red Gate Software - SQL Monitor SQL Server performance monitoring and alerting - SQL Monitor offers an easy entrance to advanced server monitoring with a simple design that's a refreshing change from the status quo. Red Gate have added custom metrics and user roles to the product without spoiling its ease-of-use, to help you answer that timeless question, 'How healthy are your servers?' Learn more! SQL Server Jobs SQL BI Developer Fort Mill, SC Salary = $70-90K Industry = Financial SQL Developer Portland, OR Salary = $70-75K Industry = Benefits solutions provider Review all opportunities Crosstab queries using PIVOT in SQL Server

Problem


In SQL Server 2000 there was not a simple way to create cross-tab queries, but a new option first introduced in SQL Server 2005 has made this a bit easier. We took a look at how to create cross-tab queries in SQL Server 2000 in this previous tip and in this tip we will look at this new feature to allow you produce cross-tab results.

Fix : Error : Incorrect syntax near . You may need to set the compatibility level of the current database to a higher value to enable this feature. See help for the stored procedure sp_dbcmptlevel

have seen developer confused many times when they receive following error message.

Msg 325, Level 15, State 1, Line 7
Incorrect syntax near . You may need to set the compatibility level of the current database to a higher value to enable this feature. See help for the stored procedure sp_dbcmptlevel.

Friday, October 19, 2012

Curhat SQL akhir pekan

Wow data yang tersimpan didatabase tidaklah berguna jika tidak bisa mengelolanya . misalkan manajemen mau minta laporan detail dari tahun 2011 s/d 2012 ,diurutkan pertahun, persemester, perquartal, perbulan dan perminggu.. belum lagi master distributornya terpisah, harganya juga terpisah cuma diambil yang paling update aja, trus ada tabel discount juga per item beda2 tiap distributor
Nah loh... gimana ya querynya ??

Wednesday, October 17, 2012

mencari minggu ke berapa di suatu bulan di SQL Server

Dalam pembuatan laporan penjualan biasanya dipilih dari periode tertentu misalkan dari tanggal berapa hingga tanggal berapa, perbulan  dan seterusnya. yang sering diminta dari laporan penjualan adalah laporan per minggu, nah bagaimana kita menentukan suatu tanggal transaksi itu masuk minggu ke berapa. ternyata di sql server ada cara mudahnya

Friday, September 14, 2012

Melakukan shrink database

telah saya jelaskan diartikel sebelumnya mengapa kita perlu melakukan shrink database. shrink database digunakan untuk membersihkan log transaksi yang penuh sehingga kinerja database sql server menjadi normal. langkah langkah melakukan shrink adalah sebeagai berikut :

  1. buka sql server manajemen studio dari start->program ->sql server 2005 ->Microsoft sql server management studio

  2. silahkan login dengan username dan password untuk masuk ke database .

  3. setelah masuk , anda pilih database yang akan anda shrink kemudian klik kanan pilih task->shrink->database seperti yang ditunjukan pada gambar berikut :


  4. checklist reorganize file before releasing unused space. selecting this option may affect performance kemudian tekan ok.

  5. tunggu prosesnya hingga selesai .

Server database SQL Melambat

database adalah sebuah hal yang sangat vital sekali sebagai tempat penyimpanan data. untuk itu perlu dilakukan maintenance secara berkala terhadap server dan database itu sendiri. akses yang banyak dari user serta kinerja yang terus menerus antara client dan server database membuat log transaksi yang ada pada database semakin penuh. pada kondisi tertentu ini bisa menyebabkan kinerja atau performance menjadi lambat. untuk membersihkan log transaksi yang ada pada database sql server silahkan anda melakukan shrink database.

Wednesday, September 5, 2012

Migrasi database dari sql server ke mysql

bagi para database administrator pekerjaan migrasi database adalah sudah menjadi skill yang wajid dimiliki. kali ini saya ingin membagikan cara mudah migrasi database dari sql server ke mysql. untuk migrasi disini saya menggunakan software mssql2mysql.exe . program ini bisa di download di sini . setelah selesai di download lakukan installasi

Merubah null menjadi 0 di sql

akhirnya setelah sekian lama gak pernah posting, karena ngurusi blog yang satunya lagi di nusamandiriportal.blogspot.com . saya sempatkan lagi untuk posting di blog ini kali ini saya mau sharing tentang bagaimana merubah hasil query yang berupa null menjadi 0.

Badai senja merah diatas Kabah

saat aku berusia 8 tahun aku adalah anak yang sering menderita sakit sehingga tidak ada prestasi apapun yang kuraih bahkan untuk mendapat rangking di sekolahku, dengan kesendirianku yang jauh dari lingkungan untuk anak seusiaku aku tumbuh dengan menikmati kesendirianku karna tak mungkin aku bermain seperti anak-anak lain. suatu

Tuesday, September 4, 2012

10 Tips SQL Mempercepat Akses Database


Tip pertama ini mungkin tampak biasa, tetapi pada kenyataannya sebagian besar masalah database berasal dari design struktur tabel yang buruk.
Sebagai contoh, saya telah melihat orang-orang menyimpan informasi seperti info client dan pembayaran info di column database yang sama. Ini bukan hal yang baik bagi database system dan developer yang akan bekerja menggunakannya.
Ketika akan membuat database, selalu simpan informasi berbeda di tabel yang berbeda, gunakan standar penamaan yang jelas dan gunakan primary key.
Source: http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/

Tahu apa yang harus Anda optimasi
Jika Anda ingin mengoptimasi query tertentu, sangat penting bagi anda untuk bisa melihat informasi dari query yang anda jalankan. Gunakan perintah EXPLAIN, untuk mendapatkan informasi dari query yang anda jalankan, seperti yang ditunjukkan pada contoh di bawah ini:
EXPLAIN SELECT * FROM ref_table, table_lain WHERE ref_table.key_column = table_lain.column;
Source: http://dev.mysql.com/doc/refman/5.0/en/using-explain.html
Query tercepat… Adalah yang tidak pernah anda kirim
Setiap kali Anda mengirimkan query ke database, Anda akan menggunakan sumber daya server Anda. Inilah sebabnya, pada situs dengan traffic tinggi, hal terbaik yang dapat Anda lakukan untuk mempercepat database Anda adalah dengan cache queries.
Ada banyak solusi untuk menggunakan cache query pada server Anda. Berikut adalah salah satunya:
* AdoDB: AdoDB adalah library abstraksi database untuk PHP. Hal ini memungkinkan Anda untuk menggunakan sistem database pilihan Anda (MySQL, PostgreSQL, Interbase, dan lain sebagainya) dan dirancang untuk kecepatan. AdoDB sangat sederhana, namun memiliki sistem caching yang powerful. Dan juga, lisensi AdoDB di bawah BSD, yang berarti Anda dapat menggunakan dengan bebas pada proyek Anda. Sebuah lisensi LGPL juga tersedia untuk proyek-proyek komersial.
* Memcached: memcached adalah sistem caching memori terdistribusi yang sering dipakai untuk mempercepat website berbasis database dinamis dengan meringankan beban database.
* CSQL Cache: CSQL Cache adalah sebuah open-source data caching infrastruktur. Belum diuji secara pribadi, namun tampaknya bisa menjadi alat yang hebat.
Jangan Menampilkan yang tidak perlu
Yang sangat umum untuk mendapatkan data yang diinginkan adalah dengan menggunakan simbol *, yang akan mendapatkan semua kolom dari tabel yang diinginkan:
SELECT * FROM wp_posts;
Sebaliknya, Anda harus benar-benar hanya memilih kolom yang diinginkan, seperti ditunjukkan pada contoh di bawah ini. Pada situs yang sangat kecil dengan, katakanlah, satu pengunjung per menit, yang tidak akan membuat perbedaan. Tapi di situs seperti Tanyasaja.com, menghemat banyak proses untuk database.
SELECT judul, kutipan, pengarang FROM wp_posts;
Gunakan LIMIT
Ini sangat umum yang perlu Anda hanya mendapatkan jumlah record tertentu dari database Anda. Sebagai contoh, sebuah blog yang menampilkan sepuluh entri per halaman. Dalam hal ini, Anda harus benar-benar menggunakan parameter LIMIT, yang hanya menampilkan jumlah record yang diperlukan.
Tanpa LIMIT, jika tabel Anda memiliki 100.000 catatan berbeda, Anda akan ekstrak mereka semua, yang seharusnya tidak perlu dilakukan server Anda.
SELECT judul, kutipan, pengarang FROM wp_posts LIMIT 10;
Hindari queries dalam pengulangan
Bila menggunakan SQL bersama dengan bahasa pemrograman seperti PHP, dapat tergoda untuk menggunakan SQL queries dalam sebuah loop / pengulangan. Tapi hal ini seperti memukul database dengan query Anda.
Contoh ini menggambarkan seluruh masalah “queries dalam loop”:
foreach ($display_order as $id => $urut) (
$sql = “UPDATE SET kategori display_order = $ordinal WHERE id = $id”;
mysql_query ($sql);
)
Berikut adalah apa yang harus Anda lakukan sebagai gantinya:
UPDATE kategori
SET display_order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE id IN (1,2,3)
Source: http://www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different-values-and-a-single-sql-query/
Gunakan JOIN bukannya subqueries
Sebagai seorang programmer, subqueries adalah sesuatu yang Anda bisa tergoda untuk menggunakan dan menyalahgunakannya. Subqueries, seperti yang ditunjukkan di bawah ini, dapat sangat berguna:
SELECT a.id,
(SELECT MAX (created)
FROM posts
WHERE author_id = a.id)
AS latest_post FROM authors a
Meskipun subqueries berguna, mereka dapat digantikan dengan JOIN, dan yang jelas akan lebih cepat untuk mengeksekusinya.
SELECT a.id, MAX (p.created) AS latest_post
FROM authors a
INNER JOIN posts p
ON (a.id = p.author_id)
GROUP BY a.id
Source: http://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck/
Hati-hati ketika menggunakan wildcard
Wildcard sangat berguna karena mereka dapat menggantikan satu atau lebih karakter ketika mencari data dalam database. Saya tidak mengatakan bahwa Anda tidak boleh menggunakannya, tetapi sebaliknya, anda harus menggunakannya dengan hati-hati dan tidak menggunakan wildcard penuh ketika awalan atau postfix wildcard dapat melakukan pekerjaan yang sama.
Bahkan, melakukan pencarian wildcard penuh pada satu juta record pasti akan membunuh database Anda.
# Full wildcard
SELECT * FROM table WHERE COLUMN LIKE ‘%halo%’;
# Postfix wildcard
SELECT * FROM TABEL WHERE COLUMN LIKE ‘halo%’;
# Prefix wildcard
SELECT * FROM TABEL WHERE COLUMN LIKE ‘% hello’;
Source: http://hungred.com/useful-information/ways-optimize-sql-queries/
Gunakan UNION daripada OR
Contoh berikut ini menggunakan perintah OR untuk mendapatkan hasilnya:
SELECT * FROM a, b WHERE a.p = b.q OR a.x = b.y;
Pernyataan UNION memungkinkan Anda untuk menggabungkan hasil dari 2 atau lebih queries select. Contoh berikut akan mengembalikan hasil yang sama seperti perintah di atas, tetapi akan lebih cepat:
SELECT * FROM a, b WHERE a.p = b.q
UNION
SELECT * FROM a, b WHERE a.x = b.y
Source: http://www.bcarter.com/optimsql.htm
Menggunakan index
Index database mirip seperti indeks pencarian di perpustakaan: Mereka memungkinkan database untuk menemukan informasi yang diminta lebih cepat, seperti sebuah indeks perpustakaan akan memungkinkan seorang pembaca untuk menemukan apa yang mereka cari tanpa menghabiskan waktu.
Index dapat dibuat pada satu kolom atau kombinasi kolom dalam tabel database. Sebuah index tabel adalah struktur database yang mengatur nilai-nilai dari satu atau lebih kolom dalam tabel database dalam urutan tertentu.
Pertanyaan berikut ini akan membuat index pada Model kolom dari tabel Produk. Index disebut idxModel:
CREATE INDEX idxModel ON Product (Model);
Source: http://www.sql-tutorial.com/sql-indexes-sql-tutorial/