คำถามติดแท็ก php

1
จะกำจัดข้อผิดพลาด“ การเชื่อมต่อผู้ใช้สูงสุด” ได้อย่างไร
ฉันใช้ MySQLi สำหรับ webapp ของฉัน mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connectionsแต่เมื่อใดก็ตามที่ฉันต้องการที่จะไปที่หน้าโดยเฉพาะอย่างยิ่งบางอย่างผมได้รับ ฉันพยายามปิดการเชื่อมต่อทั้งหมดแล้ว แต่นี่ไม่ได้ปรับปรุงสถานการณ์ มีวิธีที่จะรู้ว่าการเชื่อมต่อใดที่เปิดอยู่ในช่วงเวลาใดช่วงเวลาหนึ่งหรือข้อมูลที่มีประโยชน์อื่น ๆ ที่สามารถช่วยฉันแก้ไขปัญหานี้ได้? BTW ฉันใช้ PHP 5.2.17 และ MySQL 5.1

5
การนำเข้าไฟล์ SQL ขนาดใหญ่ phpmyadmin
ฉันพยายามนำเข้าไฟล์ SQL นี้ใน phpmyadmin และได้รับข้อความนี้ #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<br /> <b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tr' at line 1 ฉันต้องทำอย่างไรในการนำเข้านี้
12 php  mysql  phpmyadmin 

1
การลบข้อมูล mysql จำนวนมาก (4 ล้านแถว) อย่างมีประสิทธิภาพเป็นประจำ
เรามีตาราง mysql ที่เวลาประมาณ 12 ล้านแถว เราจำเป็นต้องลบข้อมูลเก่าเพื่อให้ขนาดของตารางค่อนข้างจัดการได้ ตอนนี้เรากำลังเรียกใช้แบบสอบถามนี้ทุกวันเวลาเที่ยงคืนโดยใช้งาน cron: DELETE FROM table WHERE endTime < '1393632001' ครั้งล่าสุดที่มีการเรียกใช้แบบสอบถามตรวจสอบ 4,602,400 ใช้เวลา 3 นาทีและ CPU ดำเนินการผ่านหลังคา เราสามารถทำอะไรได้บ้างเพื่อป้องกันไม่ให้ CPU, การเชื่อมต่อฐานข้อมูลแบบซิงโครนัส, ความลึกของคิวดิสก์และอื่น ๆ จากการ spiking อย่างไม่มีเหตุผลในขณะที่ยังล้างข้อมูลเก่า PS: คุณจะสังเกตเห็นว่าการค้นหาเกิดขึ้นจริงในเวลาที่ไม่เหมาะสมพอสมควรในรอบการใช้งานของเรา สมมติว่าเราได้เปลี่ยนเวลาของการค้นหาให้เกิดขึ้นที่จุดต่ำสุดของการใช้งานในแต่ละวัน นอกจากนี้ยังไม่มีดัชนีใน "endTime" และฉันต้องการเก็บไว้อย่างนั้นถ้าเป็นไปได้เพราะมีการแทรกข้อมูลจำนวนมากเป็นประจำและไม่ต้องค้นหามากนัก
10 php  mysql 

1
PostgreSQL เตรียมการสืบค้นด้วยพารามิเตอร์ IN ()
ฉันพยายามจัดทำแบบสอบถามจาก PHP เช่น: pg_prepare($con, "prep", "select * from test where tid in ($1)"); จากนั้นเรียกใช้งานด้วย: $strpar = "3,4,6,8,10"; pg_execute($con, "prep", array($strpars)); ปัญหาคือฉันไม่สามารถผ่านชุดของค่าที่สร้างขึ้นตามที่เตรียมไว้คาดว่าจะมีพารามิเตอร์จำนวนคงที่ มีวิธีใดที่จะทำให้พารามิเตอร์เป็นแบบไดนามิกหรือไม่?

1
คำนวณ MATCH () เทียบกับ () คะแนนจาก QUERY QUERY ที่ไม่ใช่สำหรับแต่ละตาราง
ฉันพยายามที่จะมีคะแนนสำหรับส่วนทั้งหมดของคำสั่ง SELECT SELECT *,MATCH(`result`) AGAINST('keyword') as `score` FROM `table1` WHERE MATCH(`result`) AGAINST('keyword') UNION SELECT *,MATCH(`content`) AGAINST('keyword') as `score` FROM `table2` WHERE MATCH(`content`) AGAINST('keyword') UNION SELECT *,MATCH(`text`) AGAINST('keyword') as `score` FROM `table3` WHERE MATCH(`text`) AGAINST('keyword') ในกรณีดังกล่าวคะแนนต่อตาราง + พวกเขาจะไม่เรียงตามความเกี่ยวข้อง แต่ฉันลองวิธีนี้ซึ่งใช้งานได้ แต่ไม่คุ้มค่ากับการผลิต SELECT * FROM ( SELECT *,MATCH(`result`) AGAINST('keyword') as `score` FROM `table1` …

3
วิธีการใช้การหน่วงเวลาการแทรกด้วยเอ็นจิน InnoDB และใช้การเชื่อมต่อน้อยลงสำหรับการแทรกคำสั่ง
ฉันกำลังทำงานกับแอปพลิเคชันที่เกี่ยวข้องกับการเขียนฐานข้อมูลจำนวนมากมีการแทรกประมาณ 70% และการอ่าน 30% อัตราส่วนนี้จะรวมการอัปเดตซึ่งฉันคิดว่าเป็นหนึ่งการอ่านและการเขียนหนึ่งครั้ง ผ่านคำสั่งแทรกไคลเอนต์หลายคนแทรกข้อมูลในฐานข้อมูลผ่านคำสั่งแทรกด้านล่าง: $mysqli->prepare("INSERT INTO `track` (user, uniq_name, ad_name, ad_delay_time ) values (?, ?, ?, ?)"); คำถามคือฉันควรใช้insert_delayหรือใช้กลไกmysqli_multi_queryเพราะคำสั่งแทรกใช้ ~ 100% cpu บนเซิร์ฟเวอร์ ฉันใช้เอ็นจิ้น InnoDB บนฐานข้อมูลของฉันดังนั้นการแทรกที่ล่าช้าจึงเป็นไปไม่ได้ การแทรกบนเซิร์ฟเวอร์คือ ~ 36k / ชม. และอ่านได้ 99.89% นอกจากนี้ฉันกำลังใช้คำสั่งเลือกที่มีการดึงข้อมูลเจ็ดครั้งในแบบสอบถามเดียวแบบสอบถามนี้ใช้เวลา 150 วินาทีบนเซิร์ฟเวอร์เพื่อดำเนินการ ฉันสามารถใช้เทคนิคหรือกลไกชนิดใดสำหรับงานนี้ หน่วยความจำเซิร์ฟเวอร์ของฉันคือ 2 gb ฉันควรขยายหน่วยความจำหรือไม่ ไปดูปัญหานี้ข้อเสนอแนะใด ๆ จะขอบคุณฉัน โครงสร้างของตาราง: +-----------------+--------------+------+-----+-------------------+----------------+ | Field | …

3
วิธีแก้ไขการเชื่อมต่อมากเกินไปและข้อผิดพลาดร้ายแรงใน mysql ที่รันบน vps
ฉันกำลังเรียกใช้แอปพลิเคชั่น PHPlist บนเซิร์ฟเวอร์ linode ของฉันพร้อมใช้งานสคริปต์ PHP 12 สคริปต์ซึ่งแต่ละอันจะเปิดการเชื่อมต่อ MySQL ตอนนี้เมื่อฉันเข้าถึง PHPlist มันมักจะแสดงข้อผิดพลาดนี้: ข้อผิดพลาดร้ายแรง: ขออภัยเซิร์ฟเวอร์ไม่ว่างในขณะนี้โปรดลองอีกครั้งในภายหลัง เมื่อฉันพยายามเข้าถึง phpMyAdmin จะแสดงข้อผิดพลาด # 1040 ผลลัพธ์ของสคริปต์ PHP ของฉันที่ทำงานผ่านcronงานแสดง: คำเตือน PHP: mysqli_connect (): (HY000 / 1040): การเชื่อมต่อมากเกินไป ฉันใช้ LAMP stack บนเซิร์ฟเวอร์ด้วย phpMyAdmin topการส่งออกในรายการสถานีmysqldโดยใช้ CPU 100-130% เมื่อฉันพยายามแก้ไขปัญหานี้ฉันได้รับเบาะแสบางอย่าง: เพิ่มตัวแปร max_connection: ฉันใช้ 200 (100 เป็นค่าเริ่มต้น) แคชตารางเปิด: 512 (400 ตามค่าเริ่มต้น) มีตัวแปรมากมายที่ต้องตั้งค่า …
9 mysql  phpmyadmin  php 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.