mysql 쿼리가 "데이터 전송 중"상태에서 멈추는 경우가 있습니다. 12 ~ 20 분 이상이 걸리는 경우가 있습니다. 그런 다음 연결이 끊어 질 때까지 다른 쿼리가 스택에 표시되는 것을 볼 수 있습니다. 내려 간다. 그들이 앉아서 내가 충분히 긴 시간을 지켜 보면서 "임시 직원 테이블 제거"에 가서 결국 끝내면 결국 끝내는 것 같습니다.mysql 쿼리 구조, 정말이 일을하는 올바른 방법입니다.
이제이 코드를 작성하지 않았지만이를 수정해야합니다. 우리 회사의 IT 및 서버 관리 작업을 수행하지만 실제 개발자를 대상으로 실제 코드를 작성합니다. 나는 mysql에 관해서는 아무것도 모르지만, 나의 웹 녀석이 사용하고있는 SELECT 쿼리는 나에게 물고기 같아 보인다. 만약 내가 읽는다면 그는 "모든 단일 테이블에서 product_id xxxx를 찾아 내고 그 결과를주고, 나머지는 버린다"라고 말하고있다. 테이블이 색인되기 때문에 데이터를 이런 식으로 호출하는 것이 문제가되지 않는다고 주장한다.
mysql 콘솔에서 쿼리를 실행하면 결과를 반환하는 데 3 ~ 20 초가 걸리고, 실제로 PHP에서 실제로 호출하면 길어집니다. 하나의 제품 ID에만 국한되지는 않습니다. 내가 전화하려고하는 제품이별로 다르지 않은 것 같습니다.
이 내가 mysql.log 정말 각 테이블을 검색 할 필요가 가정
47384 Connect [email protected] on
47384 Init DB ecom_Products
47384 Query SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'ecom_Products'
47384 Query
SELECT * FROM ((SELECT * FROM `AC_Electric_Motor_Run_Capacitors`)
UNION ALL (SELECT * FROM `AC_Electric_Motor_Start_Capacitors`)
UNION ALL (SELECT * FROM `AC_Filters`)
UNION ALL (SELECT * FROM `AC_Gear_Motors`)
UNION ALL (SELECT * FROM `AC_Line_&_Load_Reactors`)
UNION ALL (SELECT * FROM `AC_Voltage_Regulators`)
UNION ALL (SELECT * FROM `Auxiliary_Contact_Blocks`) UNION ALL (SELECT * FROM `Bleed_Down_Resistors`) UNION ALL (SELECT * FROM `Coils`) UNION ALL (SELECT * FROM `Contactors`) UNION ALL (SELECT * FROM `Crimpers`) UNION ALL (SELECT * FROM `DC_Gear_Motors`) UNION ALL (SELECT * FROM `Diesel_Engines`) UNION ALL (SELECT * FROM `Disconnects`) UNION ALL (SELECT * FROM `Electric_Motor_Slide_Bases`) UNION ALL (SELECT * FROM `Electric_Motors`) UNION ALL (SELECT * FROM `Electric_Powered_Water_Pumps`) UNION ALL (SELECT * FROM `Electrical_Enclosures`) UNION ALL (SELECT * FROM `Engine_Powered_Water_Pumps`) UNION ALL (SELECT * FROM `External_Control_Interfaces`) UNION ALL (SELECT * FROM `Float_Switches`) UNION ALL (SELECT * FROM `Foot_Switches`) UNION ALL (SELECT * FROM `Generator_Heads`) UNION ALL (SELECT * FROM `Horizontal_Shaft_Gas_Engines`) UNION ALL (SELECT * FROM `Insulating_Resins`) UNION ALL (SELECT * FROM `Limit_Switches`) UNION ALL (SELECT * FROM `Magnet_Wire`) UNION ALL (SELECT * FROM `Manual_Transfer_Switches`) UNION ALL (SELECT * FROM `Mechanical_Interlock_Blocks`) UNION ALL (SELECT * FROM `Medium_Voltage_Transformers`) UNION ALL (SELECT * FROM `Motor_Starters`) UNION ALL (SELECT * FROM `Multi-fuel_Engines`) UNION ALL (SELECT * FROM `Overload_Relays`) UNION ALL (SELECT * FROM `PTO_Generator_3-Point_Hitch_Mounts`) UNION ALL (SELECT * FROM `PTO_Generator_Drive_Adapters`) UNION ALL (SELECT * FROM `PTO_Generator_Drive_Shafts`) UNION ALL (SELECT * FROM `PTO_Generator_Trailers`) UNION ALL (SELECT * FROM `PTO_Generators`) UNION ALL (SELECT * FROM `Packaged_Standby_Generators`) UNION ALL (SELECT * FROM `Portable_Generator_Covers`) UNION ALL (SELECT * FROM `Portable_Generator_Lifting_Provisions`) UNION ALL (SELECT * FROM `Portable_Generator_Wheel_Kits`) UNION ALL (SELECT * FROM `Portable_Generators`) UNION ALL (SELECT * FROM `Resilient_Vibration_Isolators`) UNION ALL (SELECT * FROM `Resistance_Wire`) UNION ALL (SELECT * FROM `Rotary_Frequency_Converters`) UNION ALL (SELECT * FROM `Rotary_Phase_Converters`) UNION ALL (SELECT * FROM `SO_Cable`) UNION ALL (SELECT * FROM `Single_Phase_Motors_with_Base_Mount`) UNION ALL (SELECT * FROM `Single_Phase_Motors_with_Face_&_Base_Mount`) UNION ALL (SELECT * FROM `Single_Phase_Motors_with_Face_Mount`) UNION ALL (SELECT * FROM `Soft_Starters`) UNION ALL (SELECT * FROM `Special_Metal_Wire`) UNION ALL (SELECT * FROM `Static_Frequency_Converters`) UNION ALL (SELECT * FROM `Static_Phase_Converters`) UNION ALL (SELECT * FROM `Surge_Suppressors`) UNION ALL (SELECT * FROM `Three_Phase_Motors_with_Base_Mount`) UNION ALL (SELECT * FROM `Three_Phase_Motors_with_Face_&_Base_Mount`) UNION ALL (SELECT * FROM `Three_Phase_Motors_with_Face_Mount`) UNION ALL (SELECT * FROM `Transformers_-_General`) UNION ALL (SELECT * FROM `Variable_Frequency_Drives`) UNION ALL (SELECT * FROM `Variable_Transformers`) UNION ALL (SELECT * FROM `Vehicle_&_Equipment_Batteries`) UNION ALL (SELECT * FROM `Vertical_Shaft_Gas_Engines`) UNION ALL (SELECT * FROM `Welding_Cable`) UNION ALL (SELECT * FROM `_Default`))
AS t WHERE product_ID = 'LF0009' LIMIT 1
거래에서 어떤 일이 일어날 수 있습니까? 모든 테이블을 한꺼번에 잠그는 것은 확실히 문제가 될 수 있습니다 ... (MyISAM? InnoDB?) –
각 하위 쿼리에서 래퍼'SELECT'로 보내는 대신 product_ID를 지정할 수 있습니까? – imthepitts
죄송합니다. 언급해야 할 것은 MYISAM입니다. – Xytrix01