-2

我正在创建一个活动跟踪网站。这是有 100 张桌子。我正在为每个月创建一个新表,用于记录我的搜索和点击CREATE TABLE IF NOT EXISTS(该表由 23 个字段和 9 个索引组成。)。我的客户抱怨这个查询,他们告诉它占用了大量的 CPU。它在每个请求上运行。但是如果它不存在,我会创建这个表,即每月一次。这会增加CPU使用率吗?如果是,在这种情况下有什么方法可以减少 CPU 使用率?

编辑 1

CREATE TABLE IF NOT EXISTS click_log_201305 (
                      hit_id int(10) unsigned NOT NULL auto_increment,
                      link_id int(11) NOT NULL default '0',
                      word varchar(225) NOT NULL default '',
                      ppc_engine varchar(40) NOT NULL default 'internal',
                      ppc_commission varchar(10) default NULL,
                      gross_price decimal(5,3) NOT NULL default '0.000',
                      price decimal(5,3) NOT NULL default '0.000',
                      hit_date int(11) NOT NULL default '0',
                      hit_time int(11) NOT NULL default '0',
                      affiliate varchar(50) NOT NULL default '',
                      account varchar(50) NOT NULL default '',
                      commission varchar(10) default NULL,
                      paid_flag char(3) default NULL,
                      roi_code int(11) NOT NULL default '0',
                      roi_sale int(11) default NULL,
                      debug_info varchar(100) default NULL,
                      ip varchar(15) default NULL,
                      referer varchar(200) default NULL,
                      user_agent varchar(200) default NULL,
                                          subid varchar(50) default NULL,
                                          ad_id INT(11) default NULL,
                                          group_id INT(11) default NULL,
                                          country varchar(100) default NULL,
                      PRIMARY KEY (hit_id),
                      KEY jhcl_date(hit_date),
                      KEY jhcl_src(hit_date,ppc_engine),
                      KEY jhcl_id(hit_date,link_id),
                      KEY jhcl_acct(hit_date,account),
                      KEY jhcl_aff(hit_date,affiliate),
                      KEY jhcl_word(hit_date,word),
                                          KEY jhcl_camp_id(link_id),
                                          KEY jhcl_group_id(group_id),
                                          KEY jhcl_ad_id(ad_id)
                    )
4

1 回答 1

0

将它CREATE TABLE IF NOT EXISTS放到一个 cron 作业/计划任务中,并每天早上 0 点运行它。然后查询每天只运行一次。当您创建一个新表时,将其添加到单独的表中(比如说table_list),您可以在其中保留您创建的表的列表。

然后先检查table_list,看看你是否已经创建了当月的表。如果在“ table_list ”中找不到表,可以创建新表。

于 2013-05-21T10:07:16.260 回答