ผู้เขียน หัวข้อ: High performance with partition table  (อ่าน 44949 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
High performance with partition table
« เมื่อ: กุมภาพันธ์ 20, 2007, 02:30:16 AM »
0
สำหรับผู้ที่กำลังทดสอบใช้งาน HOSxP กับ MySQL 5.5 สามารถกำหนดให้ทำ partition ในตาราง opitemrece ได้โดยใช้คำสั่งนี้ครับ

โค๊ด: SQL
  1. ALTER TABLE opitemrece remove partitioning;
  2. ALTER TABLE opitemrece DROP PRIMARY KEY;
  3. ALTER IGNORE TABLE opitemrece MODIFY COLUMN vstdate DATE NOT NULL;
  4. ALTER IGNORE TABLE opitemrece ADD PRIMARY KEY (hos_guid,vstdate);
  5.  

alter table opitemrece engine = innodb partition by range columns (vstdate)
(partition yr_2000 values less than ('2001-01-01'),
 partition yr_2001 values less than ('2002-01-01'),
 partition yr_2002 values less than ('2003-01-01'),
 partition yr_2003 values less than ('2004-01-01'),
 partition yr_2004 values less than ('2005-01-01'),
 partition yr_2005 values less than ('2006-01-01'),
 partition yr_2006 values less than ('2007-01-01'),
 partition yr_2007 values less than ('2008-01-01'),
 partition yr_2008 values less than ('2009-01-01'),
 partition yr_2009 values less than ('2010-01-01'),
 partition yr_2010 values less than ('2011-01-01'),
 partition yr_current_month values less than ('2011-01-31') ,
 partition yr_2011 values less than ('2012-01-01') ,
 partition yr_other values less than (maxvalue) );
« แก้ไขครั้งสุดท้าย: พฤษภาคม 30, 2015, 14:31:38 PM โดย admin »
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ draran

  • Full Member
  • ***
  • กระทู้: 121
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #1 เมื่อ: กุมภาพันธ์ 20, 2007, 05:20:19 AM »
0
Mysql 5.0 ใช้ได้ไหมครับ ช่วยทำให้การใช้งานเร็วขึ้นมากไหม และมีข้อจำกัดอะไรบ้าง
ความช่วยเหลือ จะมายังผู้ที่พยายาม
Administrator,Programmer,Thungyangdaeng Hospital,Pattani
SERVER: Intel Xeon Dual-Core 5140 2.33GHz. Cach 4NB.1333Mhz ,RAM DDR2 512MB*2,HDD SATA2 160 GB*2,
OS:CentOS 4.4 x86_64 MySQL 4.1.20 ,Replicate: Pentium4 WindowsXP RAM 512 MB, Client:Celeron,Sempron,PentiumIII WindowsXP

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: High performance with partition table
« ตอบกลับ #2 เมื่อ: กุมภาพันธ์ 20, 2007, 06:07:25 AM »
0
partition table ทำได้เฉพาะ MySQL 5.1 ขึ้นไปครับ สำหรับ รพ. ที่มีข้อมูลเยอะมาก แล้วรู้สึกว่าระบบทำงานช้าเมื่อบันทึกสั่งยาผู้ป่วยครับ การแยกข้อมูลเก็บเป็น partition จะช่วยให้ทำงานได้เร็วขึ้นครับ
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #3 เมื่อ: กุมภาพันธ์ 23, 2007, 04:16:39 AM »
0
อาจารย์  ทำตามคำสั่งข้างบน เท่านั้นไช่ไหม ครับ

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: High performance with partition table
« ตอบกลับ #4 เมื่อ: กุมภาพันธ์ 23, 2007, 04:47:54 AM »
0
จริงๆ มีหลาย table ที่ควรจะทำเป็น partition แต่ table ที่จะมีปัญหามากที่สุดคือ opitemrece ครับ

คำสั่งด้านบนจะแปลง table opitemrece ให้เป็น partition table ครับ

คงต้องลองทดสอบดูครับ ว่า หลังจากเปลี่ยนแล้ว ประสิทธิภาพดีขึ้นหรือไม่
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #5 เมื่อ: กุมภาพันธ์ 23, 2007, 08:46:03 AM »
0
พอดีใช้ mysql 4.1     อยากจะเปลี่ยนเป็น mysql 5.0   หรือ   mysql 5.1  จะมีปัญหาในการย้ายข้อมูลไหมครับ


Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: High performance with partition table
« ตอบกลับ #6 เมื่อ: กุมภาพันธ์ 23, 2007, 09:01:01 AM »
0
ข้อมูล backup ของ 4.1 สามารถ restore เข้ามาใน 5.0/5.1 ได้ครับ แต่ต้องลองทดสอบดูก่อนครับ
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ por

  • Hero Member
  • *****
  • กระทู้: 1,087
  • เพราะว่าเธอคือดวงใจของฉัน
  • Respect: 0
    • ดูรายละเอียด
    • Blog Adminpor
Re: High performance with partition table
« ตอบกลับ #7 เมื่อ: กุมภาพันธ์ 23, 2007, 09:38:07 AM »
0
ผมลองแล้วใชได้ครับ แต่ไม่ได้ยำเต็มที่นะครับ
เอาข้อมูล จากMysql 4.1.19 มา restroe 5.0
ตอนนี้ slave 5.0 server 4.1.19
adminpor
ICT @ Office of Public Health.Nakhonsi Province.
Mobile.083-1740976
Office.075-343409 to 106

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #8 เมื่อ: มีนาคม 07, 2007, 22:45:23 PM »
0
มี รพ.ไหน บ้าง ที่ใช้    MySQL5.1     บอกหน่อยครับ ว่าดียังไงครับ  และมีปัญหาไดบ้าง  ....ขอบพระคุณครับ


Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #9 เมื่อ: มีนาคม 08, 2007, 08:14:40 AM »
0
อยากรู้ว่า รพ. ไหน ครับ ที่ใช้ MySQL 5.1    ครับ   ขอบพระคุณครับ

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: High performance with partition table
« ตอบกลับ #10 เมื่อ: มีนาคม 08, 2007, 09:05:59 AM »
0
เท่าที่ทราบตอนนี้ยังไม่มีนะครับ คงกำลังทดสอบกันอยู่
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #11 เมื่อ: มีนาคม 10, 2007, 10:25:02 AM »
0
ผมลองมา  ตั้งแต่  MySQL4.1   5.0   5.1     แต่มาลองเอย ที่ 4.1.21/4.1.22     เพราะ    5.0    5.1   
ประวัติเวขภัณฑ์    มันขึ้น  error    ครับ

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

doramon

  • บุคคลทั่วไป
Re: High performance with partition table
« ตอบกลับ #12 เมื่อ: มีนาคม 12, 2007, 08:57:57 AM »
0
มี error ตอน update  ทำต่อไม่ได้
mysql 5.1

ออฟไลน์ sshpt

  • Sr. Member
  • ****
  • กระทู้: 446
  • Respect: 0
    • ดูรายละเอียด
    • http://ss-hospital.no-ip.org/
Re: High performance with partition table
« ตอบกลับ #13 เมื่อ: มิถุนายน 16, 2008, 10:00:52 AM »
0
รพ.ผมใช้ 5.1.23c ครับ ขึ้นระบบโดยทีมงานBMS  ;D ;D
รพ.เสิงสาง จ.นครราชสีมา  (ขนาด 30 เตียง)  Server IBM eServer xSeries 226 
CPU Xeon 3.0 GHz.  SISC-HD 73 Gb. X 2  ECC-Ram 512 Mb. X 2
ขึ้นระบบโดยทีม BMS เดือน เมษายน 2550
OS CentOS 5.1 MySQL 5.1.23-rc  HosXP V.3.51.9.23 เมื่อ 25 กย. 51
ss-hospital@hotmail.com   >>>   http://ss-hospital.no-ip.org/

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: High performance with partition table
« ตอบกลับ #14 เมื่อ: มิถุนายน 10, 2010, 11:51:51 AM »
0
ตอนนี้ทำได้จริงแล้วหรือเปล่าครับ  ...ขอบพระคุณครับ

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ ธีรเวทย์ สิริสุวรรณกิจ

  • Newbie
  • *
  • กระทู้: 12
  • Respect: 0
    • ดูรายละเอียด
    • ธีรเวทย์ สิริสุวรรณกิจ
Re: High performance with partition table
« ตอบกลับ #15 เมื่อ: ตุลาคม 04, 2013, 10:13:14 AM »
0
ขอถามเพิ่มเติมครับ
1. การเขียนคำสั่ง สามารถเขียนเผื่อไป 100 ปีได้ไหมครับ
(ขี้เกียจมาแก้บ่อยๆ)

2. สามารถซอยถี่ๆ เป็นแบบรายเดือนได้ไหมครับ มันจะเร็วขึ้นมั้ยครับ
(ไม่ต้องห่วงความยุ่งยาก ถ้ามันดี ยากแค่ไหน ก็จะทำ)

3. สั่งที่ server หลัก แล้ว slave สั่ง import ก็พอไช่ไหมครับ
โรงพยาบาลหนองม่วงไข่ จ.แพร่
Dell PowerEdge T110 II -- RAM 16GB
Windows7 x64 Ultimate
MySQL 5.5.28
ใครสนใจติดตั้ง และ ปรับ Windows Server ก็ติดต่อได้นะครับ (ถ้าว่าง จะลองเขียนกระทู้อีกทีนึง)
https://www.facebook.com/theerawate

ออฟไลน์ admin

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 68
  • Respect: +17
    • ดูรายละเอียด
    • HOSxP
Re: High performance with partition table
« ตอบกลับ #16 เมื่อ: ตุลาคม 07, 2013, 13:15:05 PM »
0
1 ทำได้ครับ
2 ต้องลองทำดูครับ อาจจะเร็วขึ้น หรือช้าลงก็ได้
3 ใช่ครับ
BMS Administrator

ออฟไลน์ ธีรเวทย์ สิริสุวรรณกิจ

  • Newbie
  • *
  • กระทู้: 12
  • Respect: 0
    • ดูรายละเอียด
    • ธีรเวทย์ สิริสุวรรณกิจ
Re: High performance with partition table
« ตอบกลับ #17 เมื่อ: กุมภาพันธ์ 20, 2014, 11:28:38 AM »
0
ลองแล้วครับ
1. การ ซอยถี่ๆ มากเกินไป จะทำให้ช้าลง มากๆ เลยครับ หรือว่า ต้องเพิ่มค่า config ให้รองรับ Partition ที่มากขึ้นด้วยก็ไม่รู้ครับ
2. การ upgrade version ของ HosXP จะมีการกวาดล้าง PRIMARY KEY และ UNIQUE INDEX ที่ถูกปรับแต่งแก้ไขใหม่หมด ซึ่งจะทำให้ Partition table ที่ถูกสร้างไว้ ด้วย PRIMARY KEY ที่เราได้ทำการปรับแต่ง หายหมดครับ
3. ทางเลือกที่ดีที่สุด ในการ Partition table สำหรับ HosXP ก็คือ ใช้ PRIMARY KEY ที่มีอยู่แล้ว ซึ่ง จากการทดสอบหลายรอบ พบว่า การ upgrade version ของ HosXP ไม่มีผลกระทบใดๆ กับ Partition table ที่ถูกสร้างขึ้นเลย
4. ผมแบ่ง opitemrece  16 ส่วน ด้วยคำสั่งนี้ กำลังทดสอบอยู่ครับ ผ่านไป 1 สัปดาห์ ก็ยังไม่รู้สึกอะไรนะครับ
ALTER TABLE opitemrece remove partitioning;
ALTER TABLE opitemrece partition by range columns (hos_guid)
(
partition p1 values less than ('{10000000-0000-0000-0000-000000000000}') ,
partition p2 values less than ('{20000000-0000-0000-0000-000000000000}') ,
partition p3 values less than ('{30000000-0000-0000-0000-000000000000}') ,
partition p4 values less than ('{40000000-0000-0000-0000-000000000000}') ,
partition p5 values less than ('{50000000-0000-0000-0000-000000000000}') ,
partition p6 values less than ('{60000000-0000-0000-0000-000000000000}') ,
partition p7 values less than ('{70000000-0000-0000-0000-000000000000}') ,
partition p8 values less than ('{80000000-0000-0000-0000-000000000000}') ,
partition p9 values less than ('{90000000-0000-0000-0000-000000000000}') ,
partition pa values less than ('{a0000000-0000-0000-0000-000000000000}') ,
partition pb values less than ('{b0000000-0000-0000-0000-000000000000}') ,
partition pc values less than ('{c0000000-0000-0000-0000-000000000000}') ,
partition pd values less than ('{d0000000-0000-0000-0000-000000000000}') ,
partition pe values less than ('{e0000000-0000-0000-0000-000000000000}') ,
partition pf values less than ('{f0000000-0000-0000-0000-000000000000}') ,
partition pz values less than maxvalue
);

ผมมีคำสั่งในตารางอื่นอีก จะทยอยลงให้นะครับ
โรงพยาบาลหนองม่วงไข่ จ.แพร่
Dell PowerEdge T110 II -- RAM 16GB
Windows7 x64 Ultimate
MySQL 5.5.28
ใครสนใจติดตั้ง และ ปรับ Windows Server ก็ติดต่อได้นะครับ (ถ้าว่าง จะลองเขียนกระทู้อีกทีนึง)
https://www.facebook.com/theerawate

ออฟไลน์ ธีรเวทย์ สิริสุวรรณกิจ

  • Newbie
  • *
  • กระทู้: 12
  • Respect: 0
    • ดูรายละเอียด
    • ธีรเวทย์ สิริสุวรรณกิจ
Re: High performance with partition table
« ตอบกลับ #18 เมื่อ: กุมภาพันธ์ 20, 2014, 11:39:05 AM »
0
สำหรับผู้ที่สนใจจะไปลองเขียนเอง ให้ศึกษาคำสัง ที่ผมเขียน
จะมีลักษณะ 2 แบบ คือ แบบที่ใช้ช่วงตัวเลข กับแบบที่ใช้กับช่วงตัวอักษร ซึ่งแล้วแต่ค่าพื้นฐานของแต่ละ column
คำสัง ที่ผมเขียน จะมีการแบ่งช่วง ตามลักษณะข้อมูล ของรพ.ผม ถ้าใครจะปรับใช้ ก็คงต้องเลือกช่วงข้อมูลเองนะครับ

ALTER TABLE opitemrece_log remove partitioning;
ALTER TABLE opitemrece_log partition by range (opitemrece_log_id)
(
partition p07 values less than (700000) ,
partition p08 values less than (800000) ,
partition p09 values less than (900000) ,
partition p10 values less than (1000000) ,
partition p11 values less than (1100000) ,
partition p12 values less than (1200000) ,
partition p13 values less than (1300000) ,
partition p14 values less than (1400000) ,
partition p15 values less than (1500000) ,
partition p99 values less than maxvalue
);

ALTER TABLE opitemrece_sticker_stat remove partitioning;
ALTER TABLE opitemrece_sticker_stat partition by range columns (hos_guid)
(
partition p1 values less than ('{10000000-0000-0000-0000-000000000000}') ,
partition p2 values less than ('{20000000-0000-0000-0000-000000000000}') ,
partition p3 values less than ('{30000000-0000-0000-0000-000000000000}') ,
partition p4 values less than ('{40000000-0000-0000-0000-000000000000}') ,
partition p5 values less than ('{50000000-0000-0000-0000-000000000000}') ,
partition p6 values less than ('{60000000-0000-0000-0000-000000000000}') ,
partition p7 values less than ('{70000000-0000-0000-0000-000000000000}') ,
partition p8 values less than ('{80000000-0000-0000-0000-000000000000}') ,
partition p9 values less than ('{90000000-0000-0000-0000-000000000000}') ,
partition pa values less than ('{a0000000-0000-0000-0000-000000000000}') ,
partition pb values less than ('{b0000000-0000-0000-0000-000000000000}') ,
partition pc values less than ('{c0000000-0000-0000-0000-000000000000}') ,
partition pd values less than ('{d0000000-0000-0000-0000-000000000000}') ,
partition pe values less than ('{e0000000-0000-0000-0000-000000000000}') ,
partition pf values less than ('{f0000000-0000-0000-0000-000000000000}') ,
partition pz values less than maxvalue
);

ALTER TABLE opitemrece_summary remove partitioning;
ALTER TABLE opitemrece_summary partition by range columns (hos_guid)
(
partition p1 values less than ('{10000000-0000-0000-0000-000000000000}') ,
partition p2 values less than ('{20000000-0000-0000-0000-000000000000}') ,
partition p3 values less than ('{30000000-0000-0000-0000-000000000000}') ,
partition p4 values less than ('{40000000-0000-0000-0000-000000000000}') ,
partition p5 values less than ('{50000000-0000-0000-0000-000000000000}') ,
partition p6 values less than ('{60000000-0000-0000-0000-000000000000}') ,
partition p7 values less than ('{70000000-0000-0000-0000-000000000000}') ,
partition p8 values less than ('{80000000-0000-0000-0000-000000000000}') ,
partition p9 values less than ('{90000000-0000-0000-0000-000000000000}') ,
partition pa values less than ('{a0000000-0000-0000-0000-000000000000}') ,
partition pb values less than ('{b0000000-0000-0000-0000-000000000000}') ,
partition pc values less than ('{c0000000-0000-0000-0000-000000000000}') ,
partition pd values less than ('{d0000000-0000-0000-0000-000000000000}') ,
partition pe values less than ('{e0000000-0000-0000-0000-000000000000}') ,
partition pf values less than ('{f0000000-0000-0000-0000-000000000000}') ,
partition pz values less than maxvalue
);

ALTER TABLE screen_doctor remove partitioning;
ALTER TABLE screen_doctor partition by range columns (vn)
(
partition p52 values less than ('520000000000') ,
partition p53 values less than ('530000000000') ,
partition p54 values less than ('540000000000') ,
partition p55 values less than ('550000000000') ,
partition p56 values less than ('560000000000') ,
partition p57 values less than ('570000000000') ,
partition p58 values less than ('580000000000') ,
partition p59 values less than ('590000000000') ,
partition p99 values less than maxvalue
);

ALTER TABLE er_image remove partitioning;
ALTER TABLE er_image partition by range columns (vn)
(
partition p52 values less than ('520000000000') ,
partition p53 values less than ('530000000000') ,
partition p54 values less than ('540000000000') ,
partition p55 values less than ('550000000000') ,
partition p56 values less than ('560000000000') ,
partition p57 values less than ('570000000000') ,
partition p58 values less than ('580000000000') ,
partition p59 values less than ('590000000000') ,
partition p99 values less than maxvalue
);

ALTER TABLE hipdata remove partitioning;
ALTER TABLE hipdata partition by range columns (cid)
(
partition p1 values less than ('1000000000000') ,
partition p2 values less than ('2000000000000') ,
partition p3 values less than ('3000000000000') ,
partition p4 values less than ('4000000000000') ,
partition p5 values less than ('5000000000000') ,
partition p6 values less than ('6000000000000') ,
partition p7 values less than ('7000000000000') ,
partition p8 values less than ('8000000000000') ,
partition p9 values less than ('9000000000000') ,
partition pz values less than maxvalue
);

ALTER TABLE incoth remove partitioning;
ALTER TABLE incoth partition by range columns (vn)
(
partition p52 values less than ('520000000000') ,
partition p53 values less than ('530000000000') ,
partition p54 values less than ('540000000000') ,
partition p55 values less than ('550000000000') ,
partition p56 values less than ('560000000000') ,
partition p57 values less than ('570000000000') ,
partition p58 values less than ('580000000000') ,
partition p59 values less than ('590000000000') ,
partition p99 values less than maxvalue
);

ALTER TABLE ipt_nurse_oper remove partitioning;
ALTER TABLE ipt_nurse_oper partition by range (nurse_oper_id)
(
partition p04 values less than (400000) ,
partition p06 values less than (600000) ,
partition p08 values less than (800000) ,
partition p10 values less than (1000000) ,
partition p12 values less than (1200000) ,
partition p14 values less than (1400000) ,
partition p99 values less than maxvalue
);

ALTER TABLE ksklog remove partitioning;
ALTER TABLE ksklog partition by range (ksklog_id)
(
partition p31 values less than (3100000) ,
partition p32 values less than (3200000) ,
partition p33 values less than (3300000) ,
partition p34 values less than (3400000) ,
partition p35 values less than (3500000) ,
partition p36 values less than (3600000) ,
partition p37 values less than (3700000) ,
partition p38 values less than (3800000) ,
partition p39 values less than (3900000) ,
partition p40 values less than (4000000) ,
partition p99 values less than maxvalue
);

ALTER TABLE lab_head remove partitioning;
ALTER TABLE lab_head partition by range (lab_order_number)
(
partition p10 values less than (100000) ,
partition p15 values less than (150000) ,
partition p20 values less than (200000) ,
partition p25 values less than (250000) ,
partition p30 values less than (300000) ,
partition p35 values less than (350000) ,
partition p40 values less than (400000) ,
partition p99 values less than maxvalue
);
ALTER TABLE lab_order remove partitioning;

ALTER TABLE lab_order partition by range (lab_order_number)
(
partition p10 values less than (100000) ,
partition p15 values less than (150000) ,
partition p20 values less than (200000) ,
partition p25 values less than (250000) ,
partition p30 values less than (300000) ,
partition p35 values less than (350000) ,
partition p40 values less than (400000) ,
partition p99 values less than maxvalue
);

ALTER TABLE provis_card remove partitioning;
ALTER TABLE provis_card partition by range (provis_card_id)
(
partition p05 values less than (500000) ,
partition p10 values less than (1000000) ,
partition p15 values less than (1500000) ,
partition p20 values less than (2000000) ,
partition p25 values less than (2500000) ,
partition p30 values less than (3000000) ,
partition p35 values less than (3500000) ,
partition p40 values less than (4000000) ,
partition p99 values less than maxvalue
);

ALTER TABLE provis_person remove partitioning;
ALTER TABLE provis_person partition by range (provis_person_id)
(
partition p05 values less than (500000) ,
partition p10 values less than (1000000) ,
partition p15 values less than (1500000) ,
partition p20 values less than (2000000) ,
partition p25 values less than (2500000) ,
partition p30 values less than (3000000) ,
partition p35 values less than (3500000) ,
partition p40 values less than (4000000) ,
partition p99 values less than maxvalue
);

ALTER TABLE vital_sign_data remove partitioning;
ALTER TABLE vital_sign_data partition by range (vital_sign_data_id)
(
partition p05 values less than (500000) ,
partition p10 values less than (1000000) ,
partition p15 values less than (1500000) ,
partition p20 values less than (2000000) ,
partition p25 values less than (2500000) ,
partition p30 values less than (3000000) ,
partition p35 values less than (3500000) ,
partition p40 values less than (4000000) ,
partition p99 values less than maxvalue
);

ALTER TABLE vn_stat_log remove partitioning;
ALTER TABLE vn_stat_log partition by range (vn_stat_log_id)
(
partition p01 values less than (100000) ,
partition p02 values less than (200000) ,
partition p03 values less than (300000) ,
partition p04 values less than (400000) ,
partition p05 values less than (500000) ,
partition p06 values less than (600000) ,
partition p07 values less than (700000) ,
partition p08 values less than (800000) ,
partition p99 values less than maxvalue
);
โรงพยาบาลหนองม่วงไข่ จ.แพร่
Dell PowerEdge T110 II -- RAM 16GB
Windows7 x64 Ultimate
MySQL 5.5.28
ใครสนใจติดตั้ง และ ปรับ Windows Server ก็ติดต่อได้นะครับ (ถ้าว่าง จะลองเขียนกระทู้อีกทีนึง)
https://www.facebook.com/theerawate

ออฟไลน์ ธีรเวทย์ สิริสุวรรณกิจ

  • Newbie
  • *
  • กระทู้: 12
  • Respect: 0
    • ดูรายละเอียด
    • ธีรเวทย์ สิริสุวรรณกิจ
Re: High performance with partition table
« ตอบกลับ #19 เมื่อ: กุมภาพันธ์ 20, 2014, 13:15:02 PM »
0
จะมีบางตาราง ที่ผมต้องเพิ่ม PRIMARY KEY เข้าไป เพื่อจะแบ่งได้ ซึ่งก็จำเป็นต้องสั่งซ้ำ เมื่อทำการ upgrade version ของ HosXP ครับ
และเหตุที่ต้องการจะทำ เพราะ ตารางเหล่านี้ เรียกใช้บ่อยมาก ถ้าเรียกได้เร็วขึ้น อีกซักเสี้ยววินาที ก็ถือว่าคุ้มค่า ครับ เพราะ ขั้นตอนการสร้าง Partition ใหม่ หลัง upgrade version ใช้เวลาไม่นานครับ

ALTER TABLE ovstdiag remove partitioning;
ALTER TABLE ovstdiag DROP PRIMARY KEY , ADD PRIMARY KEY (ovst_diag_id,vn);
ALTER TABLE ovstdiag partition by range columns (vn)
(
partition p52 values less than ('520000000000') ,
partition p53 values less than ('530000000000') ,
partition p54 values less than ('540000000000') ,
partition p55 values less than ('550000000000') ,
partition p56 values less than ('560000000000') ,
partition p57 values less than ('570000000000') ,
partition p58 values less than ('580000000000') ,
partition p59 values less than ('590000000000') ,
partition p99 values less than maxvalue
);

ALTER TABLE patient remove partitioning;
ALTER TABLE patient DROP PRIMARY KEY , ADD PRIMARY KEY (hos_guid,hn);
ALTER TABLE patient partition by range columns (hn)
(
partition p01 values less than ('10000') ,
partition p02 values less than ('20000') ,
partition p03 values less than ('30000') ,
partition p04 values less than ('40000') ,
partition p05 values less than ('50000') ,
partition p06 values less than ('60000') ,
partition p07 values less than ('70000') ,
partition p08 values less than ('80000') ,
partition p09 values less than ('90000') ,
partition p99 values less than maxvalue
);

*****
ข้อเสนอสุดท้าย คือ อยากให้ BMS เพิ่ม PRIMARY KEY ที่เหมาะกับการ Partition table ด้วยครับ ทางโรงพยาบาล จะจัดช่วง และแบ่ง Partition เองครับ
โรงพยาบาลหนองม่วงไข่ จ.แพร่
Dell PowerEdge T110 II -- RAM 16GB
Windows7 x64 Ultimate
MySQL 5.5.28
ใครสนใจติดตั้ง และ ปรับ Windows Server ก็ติดต่อได้นะครับ (ถ้าว่าง จะลองเขียนกระทู้อีกทีนึง)
https://www.facebook.com/theerawate