Showing posts with label MySQL. Show all posts
Showing posts with label MySQL. Show all posts

Thursday, January 26, 2023

Belajar Mysql - Pembuatan Event ( Schedule )

 


Event merupakan pembuatan dan menjadwalkan proses yang akan dilakukan. Ini membutuhkan hak istimewa EVENT untuk skema di mana acara akan dibuat (dan mungkin SUPER bergantung pada nilai DEFINER. Proses tidak akan berjalan kecuali Penjadwal diaktifkan. 

Untuk mengaktifkan supaya event bisa digunakan adalah :

1. Mengaktifkan

SET GLOBAL event_scheduler = ON;

SET @@global.event_scheduler = ON;

SET GLOBAL event_scheduler = 1;

SET @@global.event_scheduler = 1;

2. Men-Aktifkan 

SET GLOBAL event_scheduler = OFF;

SET @@global.event_scheduler = OFF;

SET GLOBAL event_scheduler = 0;

SET @@global.event_scheduler = 0;



1. Membuat Event

Format :

CREATE  [DEFINER = { user | CURRENT_USER }]

    EVENT  [IF NOT EXISTS]

    event_name  ON SCHEDULE schedule

    [ON COMPLETION [NOT] PRESERVE]

    [ENABLE | DISABLE | DISABLE ON SLAVE]

    [COMMENT 'comment']

    DO sql_statement;

schedule:

    AT timestamp [+ INTERVAL interval] ...

  | EVERY interval

    [STARTS timestamp [+ INTERVAL interval] ...]

    [ENDS timestamp [+ INTERVAL interval] ...]

interval:

    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}


Contoh 1 :

CREATE EVENT evtData     ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR

    DO  UPDATE myschema.mytable SET mycol = mycol + 1;


Contoh 2 :

CREATE EVENT evtData 

    ON SCHEDULE

      EVERY 6 HOUR

    COMMENT 'A sample comment.'

    DO

      UPDATE myschema.mytable SET mycol = mycol + 1;


2. Mengubah Event

Format :

ALTER  [DEFINER = { user | CURRENT_USER }]

    EVENT event_name

    [ON SCHEDULE schedule]

    [ON COMPLETION [NOT] PRESERVE]

    [RENAME TO new_event_name]

    [ENABLE | DISABLE | DISABLE ON SLAVE]

    [COMMENT 'comment']

    [DO event_body]


Contoh :

2.1. Mengubah jam

ALTER EVENT evtData

    ON SCHEDULE

      EVERY 12 HOUR

    STARTS CURRENT_TIMESTAMP + INTERVAL 4 HOUR;


2.2.Mengubah hari

ALTER TABLE evtData

    ON SCHEDULE

      AT CURRENT_TIMESTAMP + INTERVAL 1 DAY

    DO

      TRUNCATE TABLE myschema.mytable;


2.3. Menonaktifkan

ALTER EVENT myevent

    DISABLE;


2.4. Menganti nama 

ALTER EVENT myevent

    RENAME TO yourevent;


2.5. mengarahkan ke database lain

ALTER EVENT olddb.myevent

    RENAME TO newdb.myevent;



3. Menghapus Event

Format :

DROP EVENT [IF EXISTS] event_name


Contoh :

DROP EVENT evtData;


Belajar Mysql - Pembuatan View, Index

 



1. View

1. 1. Membuat View

Format :

CREATE   [OR REPLACE]

    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

    [DEFINER = { user | CURRENT_USER }]

    [SQL SECURITY { DEFINER | INVOKER }]

    VIEW view_name [(column_list)]

    AS select_statement

    [WITH [CASCADED | LOCAL] CHECK OPTION]


Contoh :

CREATE VIEW vTblA (mycol) AS SELECT * From TblA;


1.2. Mengubah View

Format :

ALTER

    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

    [DEFINER = { user | CURRENT_USER }]

    [SQL SECURITY { DEFINER | INVOKER }]

    VIEW view_name [(column_list)]

    AS select_statement

    [WITH [CASCADED | LOCAL] CHECK OPTION]


Contoh :

ALTER VIEW vTblA (mycol) AS SELECT kode, nama From TblA;


1.3. Menghapus View

Format :

DROP VIEW [IF EXISTS]

    view_name [, view_name] ...

    [RESTRICT | CASCADE]


Contoh :

DROP VIEW vTblA;


2.  Index

2.1. Membuat Index

Format :

CREATE [ONLINE|OFFLINE] [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name

    [index_type]

    ON tbl_name (index_col_name,...)

    [index_option] ...

index_col_name:

    col_name [(length)] [ASC | DESC]

index_type:

    USING {BTREE | HASH | RTREE}

index_option:

    KEY_BLOCK_SIZE [=] value

  | index_type

  | WITH PARSER parser_name


Contoh :

CREATE TABLE lookup (id INT) ENGINE = MEMORY;

CREATE INDEX idxData USING BTREE ON tblA (id);


2.2.  Menghapus Index

Format :

DROP INDEX index_name ON tbl_name

    [algorithm_option | lock_option] ...

algorithm_option:

    ALGORITHM [=] {DEFAULT|INPLACE|COPY}

lock_option:

    LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}


Contoh :

DROP INDEX `PRIMARY` ON idxData;


Belajar Mysql - Pembuatan Server



Definisi server digunakan dengan mesin penyimpanan FEDERATED. Pernyataan CREATE SERVER membuat baris baru di dalam tabel server di dalam database mysql. Pernyataan ini membutuhkan hak istimewa SUPER.

Nama server harus menjadi referensi unik ke server. Definisi server bersifat global dalam lingkup server, tidak mungkin untuk memenuhi syarat definisi server ke database tertentu. nama server memiliki panjang maksimum 64 karakter (nama yang lebih panjang dari 64 karakter akan dipotong secara diam-diam), dan tidak peka huruf besar-kecil. Anda dapat menentukan nama sebagai string yang dikutip. Untuk setiap opsi, Anda harus menentukan karakter literal atau numerik literal. Literal karakter adalah UTF-8, mendukung panjang maksimal 64 karakter dan standarnya adalah string kosong (kosong). String literal dipotong secara diam-diam menjadi 64 karakter. Literal numerik harus berupa angka antara 0 dan 9999, nilai defaultnya adalah 0.

1. Membuat Server

Format :

CREATE SERVER server_name

    FOREIGN DATA WRAPPER wrapper_name

    OPTIONS (option [, option] ...)

option:

  { HOST character-literal

  | DATABASE character-literal

  | USER character-literal

  | PASSWORD character-literal

  | SOCKET character-literal

  | OWNER character-literal

  | PORT numeric-literal }


Contoh :

CREATE SERVER sData

FOREIGN DATA WRAPPER mysql

OPTIONS (USER 'Remote', HOST '192.168.1.106', DATABASE 'dbData');


CREATE TABLE t (s1 INT) ENGINE=FEDERATED CONNECTION='sData';


2. Mengubah Server

Format :

ALTER SERVER  server_name

    OPTIONS (option [, option] ...)


Contoh :

ALTER SERVER sData OPTIONS (USER 'Remote');


3. Menghapus Server

Format :

DROP SERVER [ IF EXISTS ] server_name


Contoh :

DROP SERVER [ IF EXISTS ] sData'


Belajar Mysql - Pembuatan LogFile Group

 


1. Membuat LogFile Group

Format:

CREATE LOGFILE GROUP logfile_group

    ADD UNDOFILE 'undo_file'

    [INITIAL_SIZE [=] initial_size]

    [UNDO_BUFFER_SIZE [=] undo_buffer_size]

    [REDO_BUFFER_SIZE [=] redo_buffer_size]

    [NODEGROUP [=] nodegroup_id]

    [WAIT]

    [COMMENT [=] comment_text]

    ENGINE [=] engine_name


Contoh :

CREATE LOGFILE GROUP lgData

ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M;


2. Mengubah LogFile Group

Format:

ALTER LOGFILE GROUP logfile_group

    ADD UNDOFILE 'file_name'

    [INITIAL_SIZE [=] size]

    [WAIT]

    ENGINE [=] engine_name


Contoh :

ALTER LOGFILE GROUP lgData

    ADD UNDOFILE 'undo1.dat'

    INITIAL_SIZE=32M

    ENGINE=NDBCLUSTER;


3. Menghapus LogFile Group

Format:

DROP LOGFILE GROUP logfile_group

    ENGINE [=] engine_name


Contoh :

DROP LOGFILE GROUP lgData;


4.  Melihat list Logfile Group

SELECT LOGFILE_GROUP_NAME, LOGFILE_GROUP_NUMBER, EXTRA

    FROM INFORMATION_SCHEMA.FILES

    WHERE FILE_NAME = 'undo_10.dat';


5. Tablespace mengarah ke LogFile Group

CREATE TABLESPACE tsData

    ADD DATAFILE 'data1.dat'

    USE LOGFILE GROUP  lgdata

    INITIAL_SIZE 32M

    ENGINE NDBCLUSTER;


Belajar Mysql - Pembuatan Tablespace

 


1. Membuat Tablespace

Format :

CREATE TABLESPACE tablespace_name

    ADD DATAFILE 'file_name'

    USE LOGFILE GROUP logfile_group

    [EXTENT_SIZE [=] extent_size]

    [INITIAL_SIZE [=] initial_size]

    [AUTOEXTEND_SIZE [=] autoextend_size]

    [MAX_SIZE [=] max_size]

    [NODEGROUP [=] nodegroup_id]

    [WAIT]

    [COMMENT [=] comment_text]

    ENGINE [=] engine_name


Contoh :

CREATE TABLESPACE tsData;


2. Mengubah Tablespace

Format :

ALTER TABLESPACE tablespace_name

    {ADD|DROP} DATAFILE 'file_name'

    [INITIAL_SIZE [=] size]

    [WAIT]

    ENGINE [=] engine_name


Contoh :

ALTER TABLESPACE tsData RENAME TO tsDataNew;


3. Menghapus Tablespace

Format :

DROP TABLESPACE tablespace_name

    ENGINE [=] engine_name


Contoh :

DROP TABLESPACE tsDataNew;


4. Melihat list datafile pada tablespace

 SELECT LOGFILE_GROUP_NAME, FILE_NAME, EXTRA

    FROM INFORMATION_SCHEMA.FILES

    WHERE TABLESPACE_NAME = 'tsData' AND FILE_TYPE = 'DATAFILE';


5. Membuat table pada tablespace

CREATE TABLE t1 (

    c1 INT STORAGE DISK,

    c2 INT STORAGE MEMORY

    ) TABLESPACE tsData ENGINE NDB;

Belajar Mysql - Pembuatan Database

 


1. Membuat database

Format :

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

    [create_specification] ...

create_specification:

    [DEFAULT] CHARACTER SET [=] charset_name

  | [DEFAULT] COLLATE [=] collation_name


Contoh :

CREATE DATABASE dbData;


2. Mengubah database 

Format :

ALTER {DATABASE | SCHEMA} [db_name]

    alter_specification ...

ALTER {DATABASE | SCHEMA} db_name

    UPGRADE DATA DIRECTORY NAME

alter_specification:

    [DEFAULT] CHARACTER SET [=] charset_name

  | [DEFAULT] COLLATE [=] collation_name


Contoh :

ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;

ALTER DATABASE dbData CHARACTER SET= ascii;

ALTER DATABASE dbData COLLATE utf8_general_ci;

ALTER DATABASE dbData CHARACTER SET utf8 COLLATE utf8_general_ci ENCRYPTION = 'Y' READ ONLY = 1;


3. Mengganti nama database

Format :

RENAME {DATABASE | SCHEMA} db_name TO new_db_name;


Contoh :

Rename Database dbData to dbDataNew;


4. Melihat List Database

Format :

SHOW {DATABASES | SCHEMAS}

    [LIKE 'pattern' | WHERE expr]


Contoh :

SHOW DATABASES;

SHOW CREATE DATABASE dbData;


5. Menghapus database

Format :

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name


Contoh :

DROP DATABASE  dbDataNew;

Thursday, December 8, 2022

Membuat Database MySQL Pada Microsoft Azure



1. Membuat Database MySQL

1.1. Buka browser lalu akses portal Azure  kemudian masuk menggunakan email yang sudah dimiliki subscription Microsoft Azure aktif. Jika berhasil, berikut ini adalah halaman utama (dashboard) dari Microsoft Azure.


1.2. Buat database MySQL yang disediakan oleh ClearDB dan membuat resource group baru dengan nama myDatabase. Klik New dan search mysql pada kolom pencarian bertuliskan search the marketplace, lalu Enter.


1.3. Pilih MySQL Database dengan publisher ClearDB. Kemudian klik Create.


1.4. Kemudian isikan beberapa konfigurasi untuk database yang akan dibuat.


1.5. Jika sudah, jangan lupa untuk mengisi bagian persetujuan di bagian Legal Terms. Lalu, klik tombol Create. Tunggu beberapa saat hingga mendapatkan notifikasi bahwa database berhasil dibuat. 


1.6. Untuk menggunakan database tersebut, klik Manage Database. maka  akan diarahkan ke dalam situs ClearDB


1.7. Untuk dapat menggunakan database yang telah dibuat tersebut, dibutuhkan hostname, username, dan password sebagai credential, baik untuk mengaksesnya melalui MySQL client ataupun digunakan dalam program yang dibuat. Catatan data tersebut hostname, username, dan password yang akan digunakan.



2. Mengakses Database menggunakan MySQL Client

Setelah mendapatkan credential yang dapat digunakan untuk menggunakan database yang telah dibuat, kemudian jalankan aplikasi tersebut, lalu tab Open Connection (jika tidak muncul, tekan F12 pada keyboard). Selanjutnya tekan tombol New, hingga muncul tab Add Account.

Isikan hostname, username, dan password. Selanjutnya klik OK


Sunday, December 4, 2022

Mengkonfigurasi Database MySQL Pada Amazon Aurora - I




Amazon Aurora merupakan layanan database relasional dengan edisi kompatibel PostgreSQL dan MySQL, yang menawarkan kinerja dan ketersediaan database perusahaan dengan sedikit biaya. Aurora Tanpa Server merupakan konfigurasi auto-scaling sesuai permintaan baru untuk Aurora yang sekarang umumnya tersedia untuk Aurora yang kompatibel dengan edisi kompatibel MySQL. Dengan Aurora Tanpa Server, database data akan secara otomatis memulai, mematikan, dan meningkatkan atau menurunkan kapasitas berdasarkan kebutuhan aplikas, jadi tidak pernah membayar untuk apa yang tidak digunakan, sambil tetap mendapat manfaat dari ketersediaan, skala, ketersediaan Aurora yang tinggi, dan kecepatan.

Berikut adalah cara mengkonfigurasi databasse : 

1. Navigasikan Konsol RDS

Menavigasi ke konsol Relational Database Service (RDS) sehingga dapat membuat gugusan DB Aurora Tanpa Server.

Buka AWS Management Console,  masukkan nama pengguna dan kata sandi untuk memulai. Lalu mulai mengetik RDS di bilah pencarian dan pilih RDS untuk membuka konsol layanan.


2. Buat klaster DB Tanpa Server Aurora

Menggunakan Amazon RDS untuk membuat klaster Tanpa Server Aurora.

2.1. Pada layar Amazon RDS, dari bilah navigasi di kiri, pilih Klaster.

2.2. Dari layar RDS --> Klaster,  klik Create database.

2.3.  Pilih Amazon Aurora. Tombol radio Edisi, pilih kompatibel-MySQL 5.6.  lalu klik Next

2.4.  Pada Configuration , pilih Serverless, pada settings : isian DB cluster identifier, masukan user dan password, lalu klik Next

2.5..  Pada panel Pengaturan kapasitas, dapat mengubah unit kapasitas Aurora Minimum dan pengaturan unit kapasitas Aurora Maksimum. Setiap unit kapasitas Aurora setara dengan komputasi dan konfigurasi memori tertentu. Aurora Tanpa Server akan secara otomatis mengatur skala antara pengaturan kapasitas minimum dan maksimum berdasarkan penggunaan CPU klaster, koneksi, dan memori yang tersedia. Perluas bagian Konfigurasi penskalaan tambahan. disini dapat menonaktifkan jeda kluster dengan menghapus centang pada Kapasitas penghitungan jeda setelah beberapa menit tanpa aktivitas. Menggunakan kotak daftar turun jam, menit, dan detik, disini juga dapat mengubah lama waktu tidak aktif hingga klaster berhenti. Secara default, klaster akan berhenti setelah tidak aktif selama 5 menit berturut-turut.

2.6. Pada panel Jaringan & Keamanan, dalam daftar Virtual Private Cloud (VPC), pilih Buat VPC .

Dalam daftar Grup subnet, pilih Buat Grup Subnet DB . Dalam daftar Grup keamanan VPC, pilih Buat grup keamanan VPC.  akan memodifikasi grup keamanan ini untuk memungkinkan lalu lintas jaringan dari klien database untuk mengakses klaster Aurora Tanpa Server di langkah selanjutnya.

Pilih Buat database.

2.7.  Layar RDS --> Klaster akan memuat dan klaster MyClusterName akan muncul seperti di dalam status pembuatan. Klik MyClusterName dalam daftar klaster untuk mengakses informasi terperinci tentang klaster.

2.8.  Layar detail MyClusterName akan memuat. Layar ini berisi informasi pemantauan termasuk grafik Kapasitas Database Tanpa Server yang menunjukkan jumlah Unit Kapasitas Aurora yang digunakan dari waktu ke waktu dan panel Kejadian Terbaru yang memerincikan kejadian penskalaan dan menjeda/melanjutkan. Scrool ke panel Detail. Catat nilai VPC dan Titik akhir database untuk penggunaan nanti.


3. Buat Lingkungan Klien dengan Cloud9

Setelah membuat klaster MyClusterName, tugas selanjutnya adalah membuat klien database di dalam VPC yang sama. 

3.1.  Dari menu Konsol Web AWS, pilih Layanan. Di menu pencarian, mulailah mengetik Cloud9 dan pilih Cloud9 untuk membuka konsol layanan.


3.2. Pada layar AWS Cloud9,  klik Create environment

3.3. Pada layar Nama, ketik MyCloud9Env lalu klik Next step.

3.4.  Pada layar Konfigurasi pengaturan, biarkan jenis lingkungan sebagai Buat instans baru untuk lingkungan (EC2) dan Jenis instans sebagai t2.micro.

3.5. Karena klaster DB Tanpa Server Aurora tidak memiliki titik akhir yang dapat diakses secara publik, MyClusterName hanya dapat diakses dari dalam VPC yang sama. Untuk menempatkan MyCloud9Env dalam VPC yang sama dengan MyClusterName, scrool ke bawah layar Konfigurasi pengaturan dan perluas bagian Pengaturan jaringan (lanjutan). Dari menu menurun Jaringan (VPC), pilih VPC MyClusterName yang Anda catat 2h.

Pada halaman Tinjauan, pilih Buat lingkungan. Setelah lingkungan Cloud9 yang baru dibuat, lanjutkan ke langkah berikutnya.



Baca lanjutannya : Mengkonfigurasi Database MySQL Pada Amazon Aurora  - II


Mengkonfigurasi Database MySQL Pada Amazon Aurora - II

 


Sebelumnya baca tahap pertama : Mengkonfigurasi Database MySQL Pada Amazon Aurora  - I

4. Aktifkan akses jaringan klien ke Klaster Tanpa Server 

Pada tahap ini akan mengaktifkan akses jaringan dari lingkungan Cloud9 ke Klaster DB Tanpa Server . Untuk menyelesaikan tugas ini, akan menambahkan grup keamanan yang ditugaskan ke MyCloud9Env sebagai sumber lalu lintas untuk grup keamanan yang ditugaskan ke MyClusterName. Grup keamanan adalah firewall virtual yang mengontrol lalu-lintas jaringan di jaringan.

4.1. Untuk lebih memudahkan navigasi, masuk ke Konsol Web AWS dalam tab browser lain dengan mengklik menu atas, pilih Layanan lalu ketik VPC di menu pencarian dan pilih VPC dari daftar.

4.2. Pada halaman Dasbor VPC, di navigasi kiri pilih Grup keamanan.

Di kolom Nama Grup, cari grup keamanan yang berawalan aws-cloud9-MyCloud9Env. Catat ID Grup dari grup keamanan ini. Pada layar ke kanan, dapat mencatat grup keamanan yang berakhiran 7431. ID Grup akan berbeda dengan yang digambarkan di tangkapan layar ini.

4.3. Dalam daftar grup keamanan, pilih grup keamanan yang berawalan RDS-Launch-Wizard.

Lalu pilih tab Aturan Inbound. Lalu pilih Edit.

4.4. Di tab Aturan Inbound, pilih Tambahkan aturan lain. Di kolom Jenis, pilih MySQL/Aurora (3306) dari daftar menurun. Lalu klik ke dalam bidang kolom Sumber dan daftar menurun akan muncul. Pilih ID Grup keamanan yang dicatat . Lalu pilih Simpan.

Pada layar ke kanan, dari daftar dapat memilih grup keamanan yang berakhiran 7431. ID Grup spesifik  akan berbeda dengan yang digambarkan di tangkapan layar ini.  


5. Sambungkan ke Klaster DB Tanpa Server Aurora

5.1. Beralih kembali ke jendela browser MyCloud9Env.

Di tab termimal bash dalam MyCloud9Env, ketik perintah berikut. Ganti titik akhir nama pengguna dan database Master dengan nilai-nilai dalam perintah dan tekan Enter.

mysql --user=[your Master username] --password -h [your database endpoint]

Saat diminta, masukkan kata sandi Master Anda dan tekan Enter.

maka terhubung ke klaster DB Tanpa Server MyClusterName


5.2. Untuk menampilkan database di server dengan perintah berikut ke tab bash MyCloud9Env:

show databases;


6. Mengakhiri sumber daya

6.1. Pilih Layanan, lalu ketik RDS di menu pencarian. Pilih RDS untuk kembali ke Konsol RDS Aurora.

6.2. Pada konsol Amazon RDS, pilih Klaster dari daftar navigasi kiri. Dari daftar Klaster, pilih myclustername. Dari menu Tindakan pilih Hapus Klaster.

Saat diminta untuk menghapus myclustername, pilih Hapus Klaster DB.

6.3. Pada Konsol web AWS, pilih Layanan. Di menu pencarian, mulailah mengetik Cloud9 dan pilih Cloud9 untuk membuka konsol layanan.

6.4. Dari layar Lingkungan , pilih MyCloud9Env dan pilih Hapus. Konfirmasikan penghapusan


Setting Database MySQL Server

 


Konfiguras MySQL Server bisa dilakukan dengan mengubah file my.ini.  file ini berada di lokasi C:\Program Files\MySQL\MySQL Server 5.6 atau C:\ProgramData\MySQL\MySQL Server 5.6. Untuk mengetahui lokasi folder mysql berada, menjalankan MySQL dari Command Prompt : mysqld --help --verbose | more.  Disini akan ada daftar lokasi pada bagian Default options are read from the following files in the given order:. Disini dapat melakukan pengaturan secara sementara tanpa mengubah file my.ini dengan memberikan perintah SET GLOBAL. Jika ingin permanen maka mengubah file my.ini dan me-restart database setiap kali pengujian dilakukan.

Salah satu pengaturan yang paling klasik adalah mengubah nilai innodb_buffer_pool_size. value ini merupakan besarnya  memori yang dialokasikan khusus untuk menampung cache yang berisi informasi tabel dan index. Semakin besar ukuran buffer pool, maka semakin sedikit operasi disk yang dibutuhkan. Nilai default-nya yang berupa 128 MB merupakan sesuatu yang cukup kecil bila dipakai pada server dengan jumlah memori mencapai gigabyte. Dokumentasi MySQL Server merekomendasikan nilai 80% dari jumlah memori untuk database yang sibuk. Jangan lupa bahwa nilai innodb_buffer_pool_size yang terlalu besar malah bisa mengakibatkan perlambatan akibat paging.
Contoh : 
innodb_buffer_pool_size=512M
innodb_log_file_size=512M

Disini juga meningkatkan ukuran innodb_log_file_size untuk mengurangi aktifitas flush. Hasil akhir percobaan setelah perubahan konfigurasi menunjukkan bahwa terdapat peningkatan waktu eksekusi sebesar 7%. Ini adalah peningkatan yang cukup besar. Sayangnya, saya tidak bisa menaikkan innodb_buffer_pool_size menjadi 1GB karena walaupun memiliki free memori lebih dari jumlah tersebut, Windows mensyaratkan lokasi memori bebas harus berlanjut dan tidak boleh tersebar/ Batasan ini hanya terasa pada Windows 32-bit dan hampir tidak terjadi di Windows 64-bit (akibat ruang alokasi memori yang masih luas ).

Sejak versi 5.6.8, nilai query_cache_type secara default adalah 0 sehingga query cache tidak aktif. Query cache adalah fitur untuk menampung hasil query secara sementara di memori sehingga hasil yang sama bisa dikembalikan dengan cepat untuk SQL yang sama. Tentu saja query cache harus dihapus bila isi tabel yang dibaca sudah berubah sejak terakhir kali dibaca. Bila query cache terlalu sering kadaluarsa, ini bukannya mempercepat malah bisa memperlambat. Dengan demikian, query cache bisa bermanfaat dan juga bisa merugikan tergantung dari seberapa sering aplikasi mengubah isi tabelnya.

Sebagai contoh, menggunakan mysqlslap bawaan MySQL Server untuk mensimulasikan query SELECT yang dilakukan oleh beberapa klien secara bersamaan dengan memberikan perintah berikut ini:

c:\> mysqlslap --user=root --password --create-schema=inventory 
--concurrency=20 --iterations=10 --no-drop --query=select.sql

Hasil
        Average number of seconds to run all queries: 25.033 seconds
        Minimum number of seconds to run all queries: 22.435 seconds
        Maximum number of seconds to run all queries: 32.380 seconds
        Number of clients running queries: 20
        Average number of queries per client: 7513

Perintah di atas mensimulasikan akses dari 20 client secara bersamaan yang mengerjakan isi query di file select.sql selama 10 kali.

Kemudian mengaktifkan query cache dengan menambahkan baris berikut ini di my.ini:

query_cache_type=1
query_cache_size=5MB

Jalankan lagi

c:\> mysqlslap --user=root --password --create-schema=inventory
--concurrency=20 --iterations=10 --no-drop --query=select.sql

Hasil
        Average number of seconds to run all queries: 36.043 seconds
        Minimum number of seconds to run all queries: 31.943 seconds
        Maximum number of seconds to run all queries: 41.467 seconds
        Number of clients running queries: 20
        Average number of queries per client: 7513

Terlihat bahwa mengaktifkan query cache hanya membuat query menjadi lambat. Untuk melihat status query cache, dapat memberikan perintah SQL berikut ini:

mysql> SHOW STATUS LIKE 'Qcache%';
+----------------------------------+---------+
| Variable_name                      | Value   |
+---------------------------------+---------+
| Qcache_free_blocks            | 327         |
| Qcache_free_memory         | 988680   |
| Qcache_hits                         | 1196351 |
| Qcache_inserts                     | 65103    |
| Qcache_lowmem_prunes     | 64153    |
| Qcache_not_cached              | 240682  |
| Qcache_queries_in_cache    | 950        |
| Qcache_total_blocks            | 2351      |
+---------------------------------+-----------+
Nilai Qcache_lowmem_prunes menunjukkan jumlah query yang terpaksa dihapus karena ukuran query cache sudah tidak cukup lagi. Pada hasil di atas, nilainya cukup tinggi. Walaupun demikian, nilai Qcache_hits yang tinggi menunjukkan bahwa query cache seharusnya bisa membantu. Oleh sebab itu, coba meningkatkan ukuran query cache dengan mengubah konfigurasi menjadi seperti berikut ini:

query_cache_type=1
query_cache_size=10MB

Hasil ketika menjalankan mysqlslap adalah:

c:\> mysqlslap --user=root --password --create-schema=inventory
--concurrency=20 --iterations=10 --no-drop --query=select.sql

Hasil
        Average number of seconds to run all queries: 24.233 seconds
        Minimum number of seconds to run all queries: 22.326 seconds
        Maximum number of seconds to run all queries: 31.803 seconds
        Number of clients running queries: 20
        Average number of queries per client: 7513

Walaupun sudah tidak lambat lagi, tapi tidak menjumpai peningkatkan kinerja yang cukup berarti saat mengaktifkan query cache. Hal ini cukup masuk akal karena saat ini belum ada tabel raksasa yang membutuhkan waktu pencarian lama sehingga query cache belum dapat menunjukkan taringnya.

Masalah jaringan, MySQL Server memiliki kebiasaan melakukan request DNS untuk melakukan validasi host pada saat pengguna login. Bila DNS server yang dipakai lambat (  bawaan ISP), maka hal ini bisa menimbulkan kesan bahwa koneksi database sangat lambat pada aplikasi pertama kali dijalankan. Untuk mengatasinya, bisa mematikan request DNS dan hanya melakukan validasi berdasarkan IP dengan menambahkan konfigurasi berikut ini:

skip_name_resolve=ON

Fitur lainnya yang berguna untuk tabel berukuran besar adalah kompresi tabel. MySQL Server mendukung 2 jenis file format untuk InnoDB: Antelope (versi original) dan Barracuda (versi terbaru). File format yang dipakai secara default adalah Antelope untuk memaksimalkan kompatibilitas dengan fitur lama. Tambahkan baris berikut ini di file konfigurasi:

innodb_file_format=Barracuda

Salah satu fitur baru yang ditawarkan oleh format Barracuda adalah kompresi tabel. Kompresi dapat diakses dengan menambahkan ROW_FORMAT=COMPRESSED pada saat memberikan perintah CREATE TABLE atau ALTER TABLE seperti pada:

ALTER TABLE `produk`
ROW_FORMAT = COMPRESSED ;

Untuk bisa memakai kompresi, perlu memastikan bahwa nilai innodb_file_per_table adalah ON (nilai default sejak versi 5.6.6).

Tuesday, August 16, 2022

Restore Database MySQL


Berikut adalah cara Restore database MySQL :

1. Menggunakan Sintak

Format :

mysql -u [uname] -p [pass] [db_to_restore] < [backupfile.sql]

Keterangan : 
  • [db_to_restore] Nama database backup yang digunakan untuk melakukan restore

Contoh :

mysql -uroot -proot dbdata < dbdata.sql


2. Menggunakan PHPMyAdmin

buka PHPMyAdmin, login dengan user dan password


Kemudian pilih database yang mau direstore :


Kemudian pilih Import, lalu klik choose file, untuk mengambil file backup-an yang telah dibuat.


Setelah itu ambil file backup-an, lalu klik Open


Setelah itu, klik Go, untuk restore


Restore database sukses


Backup Database MySQL



Berikut adalah cara backup database MySQL :

1. Menggunakan Sintak

Format :

mysqldump -u [userdb] -p [pass] [dbname] > [backupfile.sql]

Keterangan :
  • [userdb] Nama user database 
  • [pass] Password database 
  • [dbname] Nama database 
  • [backupfile.sql] Nama file untuk database yang dibackup

Contoh :

mysqldump -uroot -proot dbdata > dbdata.sql


2. Menggunakan PHPMyAdmin

buka PHPMyAdmin, login dengan user dan password

Kemudian pilih database yang mau dibackup


Kemudian klik Ekspor


Lalu simpan file dengan nama dbdata.sql


hasil dari nackup database yang telah disimpan


Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...