Php 在mysql中,从视图进行查询的速度非常慢

Php 在mysql中,从视图进行查询的速度非常慢,php,mysql,Php,Mysql,我有两张桌子。(1) 查询,(2)跟进。我必须根据MAX(访客ID)在视图中存储FOLLOW\u UP中的数据。我的视图已成功创建,我可以在phpMyadmin中查看数据 (1) 查询表格 $enq = " CREATE TABLE IF NOT EXISTS ENQUIRY ( ID BIGINT PRIMARY KEY AUTO_INCREMENT , LONGDATE BIGINT, UNAME VARCHAR(200) ,

我有两张桌子。(1)
查询
,(2)
跟进
。我必须根据
MAX(访客ID)
在视图中存储
FOLLOW\u UP
中的数据。我的视图已成功创建,我可以在
phpMyadmin
中查看数据

(1)
查询
表格

$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)";
$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)";
(2)
跟进
表格

$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)";
$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)";
我的看法如下:

$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)";
现在,我尝试从视图运行查询:

$Q = "SELECT COUNT(*) AS TOFOLLOW FROM F_TOFOLLOW";
我尝试执行的任何查询都非常慢。即使在大多数情况下,我也会:

SQLSTATE[HY000]:一般错误:2006 MySQL服务器已经离开

有人建议我在mysql配置中更新
max_allowed_packet
,但在共享主机中没有办法这样做


类似的观点也不错。我的代码有什么问题?是否有办法解决此问题?

对于性能问题,您必须向我们显示表索引和查询解释计划。为了便于阅读,请使用小写字母表示表名和列名LongDate?Wassat?