downloadbooks_2014 2017-02-16 11:20
浏览 238

从视图查询在mysql中非常慢

I have two tables. (1) ENQUIRY , (2) FOLLOW_UP . I have to store data from FOLLOW_UP against MAX(VISITOR_ID) in a view. My view is created successfully and I can view data in phpMyadmin.

(1) ENQUIRY TABLE

$enq = " CREATE TABLE IF NOT EXISTS ENQUIRY (
        ID BIGINT PRIMARY KEY AUTO_INCREMENT ,
        LONGDATE BIGINT,
        UNAME VARCHAR(200) ,
        ADDRESS VARCHAR(200) ,
        STATE VARCHAR(60) ,
        ZIP VARCHAR(20) ,
        PHONE VARCHAR(100) ,
        AGE INTEGER ,
        SEX VARCHAR(6) ,
        DOB_DATE INTEGER ,
        DOB_MONTH INTEGER ,
        DOB_YEAR INTEGER ,
        MARITAL_STATUS VARCHAR(30),
        BLOOD_GROUP VARCHAR(10),
        EMAIL VARCHAR(200),
        IS_MEMBER VARCHAR(3) DEFAULT 'NO' ,
        REF_SOURCE VARCHAR(150) ,
        REFERENCE VARCHAR(150),
        LAST_FOLLOWUP BIGINT DEFAULT 0,
        CREATE_BY VARCHAR(100),
        CREATE_ON BIGINT,
        SERVER INTEGER DEFAULT 0)";

(2) FOLLOW_UP TABLE

$enq = " CREATE TABLE IF NOT EXISTS FOLLOW_UP (
    ID BIGINT PRIMARY KEY AUTO_INCREMENT , 
    VISITOR_ID BIGINT ,  
    VISITOR_NAME VARCHAR(200) ,  
    LONGDATE BIGINT ,  
    FEED_BACK VARCHAR(200) ,              
    NEXT_CONTACT BIGINT ,     
    FEED_BACK_SUMMARY VARCHAR(80) ,  
    FOLLOWUP_BY VARCHAR(80),  
    SERVER INTEGER DEFAULT 0)";

My view is as follows:

$enq = "CREATE OR REPLACE VIEW F_TOFOLLOW 
AS SELECT 
FOLLOW_UP.ID, 
FOLLOW_UP.LONGDATE, 
FOLLOW_UP.VISITOR_ID, 
ENQUIRY.UNAME, 
FOLLOW_UP.FEED_BACK, 
FOLLOW_UP.FEED_BACK_SUMMARY, 
FOLLOW_UP.FOLLOWUP_BY, 
FOLLOW_UP.NEXT_CONTACT, 
ENQUIRY.CREATE_BY, 
ENQUIRY.IS_MEMBER 

FROM FOLLOW_UP 
INNER JOIN ENQUIRY ON FOLLOW_UP.VISITOR_ID = ENQUIRY.ID 
WHERE FOLLOW_UP.ID = (SELECT MAX(ID) FROM 
FOLLOW_UP F WHERE F.VISITOR_ID = FOLLOW_UP.VISITOR_ID)";

Now I am trying to run query from the view:

$Q = "SELECT COUNT(*) AS TOFOLLOW FROM F_TOFOLLOW";

Any Query I try to execute is very very very very slow. Even most of the time I get:

SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

Some suggests me to update max_allowed_packet in mysql config but there is no way to do so in a shared hosting.

Similar views are running fine. What is wrong with my code? Is there any way to resolve this issue?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码
    • ¥50 随机森林与房贷信用风险模型
    • ¥50 buildozer打包kivy app失败
    • ¥30 在vs2022里运行python代码
    • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
    • ¥15 求解 yolo算法问题