Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > website ค้างเมือ mysqld cpu peak อัพเดทข้อมูลลง database



 

website ค้างเมือ mysqld cpu peak อัพเดทข้อมูลลง database

 



Topic : 136479



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์




ตอนนี้เจอปัญหาการ update ข้อมูลเว็บ user ล็อกอินเข้าระบบตามรูปที่แนบมาครับ

cpu
จากรูปเห็นว่า cpu process mysqld วิ่ง 100 หรือบางที่ก็ไม่ถึงร้อยแต่เว็บค้าง

เลยเข้าไปเช็คใน phpmyadmin status ก็จะเห็นดังภาพ

mysql

การ update มันค้างนานจนต้องไปรี server mysqld ใน DA

อันนี้คือ config my.cnf

[mysqld]
local-infile=0
innodb_file_per_table
sql-mode=""
character-set-server=utf8
performance_schema = ON
innodb_buffer_pool_size=228M
innodb_log_file_size=16M
open_files_limit = 80000
skip-name-resolve=1
#max_allowed_packet = 268435456

อันนี้เป็น table index ของ logintime

in

อันนี้เป็น code ครับ

Code
public function OnlineUpdate($user){
$nowtime=mktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y'));
try
{
$stmt = $this->conn->prepare("UPDATE pw_logintime SET timer=:pass WHERE user=:usercheck LIMIT 1");
$stmt->execute(array(':usercheck'=>$user,':pass'=>$nowtime));
$ipaddress_online = $_SERVER['REMOTE_ADDR'];
$stmt = $this->conn->prepare("UPDATE pw_logintime SET onlineip=:onlineip2 WHERE user=:usercheck LIMIT 1");
$stmt->execute(array(':usercheck'=>$user,':onlineip2'=>$ipaddress_online));
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}



ผมควรปรับแก้ตรงไหนบ้างครับ

ขอบคุณทุกคำแนะนำ



Tag : PHP, MySQL









ประวัติการแก้ไข
2021-11-11 16:00:40
2021-11-11 16:01:19
2021-11-11 16:01:40
2021-11-11 16:02:12
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-11-11 15:58:56 By : Manop12 View : 657 Reply : 4
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


1 optimize code เล็กน้อย
Code (PHP)
public function OnlineUpdate($user){	
	//$nowtime=mktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y'));
	$nowtime = time(); // get system time มาไว้ใน buffer คำสั่ง date ถ้าไม่ ไม่ได้ กำหนดค่า เวลา จะไปถึง system time ยิ่งเรียกเยอะ เวลายิ่งเพี้ยน  
		// และ ใช้คำสั่ง mktime ทำไม ในเมื่อเราใช้ system time อยู่แล้ว เรียกคำสั่งเดียว สั้นๆ ได้ค่าเท่ากัน
	try{
		$stmt = $this->conn->prepare("UPDATE pw_logintime SET timer=:pass WHERE user=:usercheck LIMIT 1");
		$stmt->execute(array(':usercheck'=>$user,':pass'=>$nowtime));
		$stmt->close(); // ปิด transaction อันแรกไปก่อน ค่อยเปิดใหม่
		$ipaddress_online = $_SERVER['REMOTE_ADDR'];
		$stmt = $this->conn->prepare("UPDATE pw_logintime SET onlineip=:onlineip2 WHERE user=:usercheck LIMIT 1");
		$stmt->execute(array(':usercheck'=>$user,':onlineip2'=>$ipaddress_online));
	}catch(PDOException $e){
		echo $e->getMessage();
	}
}


2 optimize table เล็กน้อย เพิ่ม index ให้ user ด้วย ค้นหา ด้วย user แต่ไม่มี index ให้ user มันจะสร้าง temp index ขึ้นมา เสมอ
ยิ่งข้อมูลเยอะ ยิ่งนาน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 18:43:55 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


ได้ลองทำการคำแนะนำแล้วครับ อาการดีขึ้นมาก แต่ยังพบว่ายังเจอในบ้างครั้ง ไม่ทราบว่าควรจะแก้ไขจุดไหนอีกมั้ยครับ เพื่อให้หายขาด

x


ประวัติการแก้ไข
2021-11-11 22:17:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 22:00:11 By : Manop12
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


Code (PHP)
$stmt = $this->conn->prepare("UPDATE pw_logintime 
SET timer=:pass , onlineip=:onlineip2 
WHERE user=:usercheck LIMIT 1");

รวมเป็น statement เดียว เพิ่งสังเกตุเห็น ตารางเดียวกัน where เดียวกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 23:18:09 By : Chaidhanan
 


 
็Host Spec ต่ำ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-12 14:56:22 By : Guest
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : website ค้างเมือ mysqld cpu peak อัพเดทข้อมูลลง database
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่