วันพฤหัสบดีที่ 1 สิงหาคม พ.ศ. 2556

ปรับ my.cnf

[client]
#password    = [your_password]
port        = 3306
socket        = /var/lib/mysql/mysql.sock
default-character-set = tis620

[mysqld]
default-character-set=tis620  ###ทำให้ใช้งานภาษาไทยได้ ต้องเซ็ทตรงนี้ให้เสร็จก่อนที่จะ import ข้อมูลภาษาไทยเข้าไป
skip-charecter-set-client-handshark = ใช้เซ็ตภาษาให้กับโปรแกรมอื่น ช่น access
key_buffer=128M    ###ควรเซ็ทเป็น 40% ของ ram ที่มี
table_cache=256 ###ให้เท่ากับตารางทั้งหมดที่มีใน DB
sort_buffer_size=1M ###เป็นหน่วยความจำที่จองไว้ต่อจำนวน connection
read_buffer_size=1M  ###เป็นหน่วยความจำที่จองไว้ต่อจำนวน connection
read_rnd_buffer_size=1M  ###เป็นหน่วยความจำที่จองไว้ต่อจำนวน connection
myisam_sort_buffer_size=32M  ###ในการที่เรา create index จะใช้หน่วยความจำส่วนนี้ ควรเซ็ทไว้ 10-20%
max_allowed_packet=32M ###เป็นตัวกำหนดค่าการส่งข้อมูลใน 1 statement เช่น คำสั่ง insert ที่มีรูปมาด้วย หากคำสั่งนั้นมีขนาดใหญ่กว่าจำนวนที่กำหนดไว้ จะ error แนะนำให้กำหนดไว้ 128M
query_cache_size=128M ### ควรเซ็ทไว้ที่  10%
#interaction_timeout=300
#wait_timeout=180 ### เช่นกรณีที่รายงานนั้นใช้เวลาในการดึงรายงานออกมานานเกินเวลาที่กำหนดไว้จะทำงานตัด connection นั้นทิ้งไป
innodb_data_file_path=ibdata1:100M:autoextend ###กำหนดขนาดเริ่มต้นของ logfile
innodb_flush_log_at_trx_commit=1 ###ตัวกำหนดพฤติกรรมในการ commit ข้อมูล ถ้ามีค่าเป็น 1 คือมีการบันทึกข้อมูลลง HD ทันที ถ้าเป็น 0 จะบันทึกข้อมูลทุก 1 วินาที ถ้าไฟดับ ข้อมูลจะหายไป 1 วินาที
innodb_buffer_pool_size=64M ###อันนี้สำคัญ เป็นหน่วยความจำที่แชร์ ยิ่งเยอะยิ่งดีแต่ไม่ควรเกิน 40-60% ของหน่วยความจำที่มี
innodb_additional_mem_pool_size=8M
innodb_log_file_size=16M ### ถ้า mysql start แล้วตรงนี้ห้ามแก้ ถ้าจะแก้ต้องแก้ก่อนเริ่มใช้งาน เพราะถ้า ลบไฟล์ทิ้งข้อมูลแบบ innodbจะไม่สมบูรณ์
innodb_log_buffer_size=4M ###ระบบ Set ให้เอง
innodb_lock_wait_timeout=50
max_connections=1000 ###อันนี้สำคัญ จำนวนเครื่องที่จะ connect เข้ามาที่ mysql ได้
innodb_file_per_table ###อันนี้สำคัญ เนื่องจาก innodb เก็บทุกตารางไว้ในไฟล์เดียวกันหมด ถ้ามีคำสั่งบรรทัดนี้ จะเป็นการสั่งให้การเก็บข้อมูลเป็นแบบ 1 ตาราง เป็น 1 file
skip-character-set-client-handshake   ###ผู้ใช้สามารถใช้โปรแกรมอื่นมาดึงข้อมูลจาก mysql ได้ เช่น Access
skip-locking
skip-name-resolve ###ถ้าไม่เปิดอันนี้ mysql จะเสียเวลาแปลง ip ให้เป็น ชื่อเครื่อง
big-tables ###เปิดไว้สำหรับ myisam ให้เก็บข้อมูลได้ในระดับ tera

[mysql]
default-character-set=tis620

[mysqldump]
default-character-set=tis620
max_allowed_packet=16M
allow-keywords

ที่มา:http://group.wunjun.com/#!/hospital/topic/420259-13594