php - 我们已经在注册表格上设计了国家,州,城市下拉菜单功能,但是我们的房东在我们的数据库上放置了一个阻止

标签 php mysql sql sql-server database

我们已经在注册表格上设计了一个国家,州,城市下拉菜单功能,但是由于进程中明显的SQL重载,我们的主机(主机Gator)在数据库上放置了一个块。下来,我所做的只是咖啡馆,以确保状态相应地更改,并且与城市相同。

我们有一个共享的托管帐户,并允许使用多达25%的CPU和RAM,就像32核AMD和64GB Ram服务器一样。我真的看不到三层下降会如何导致这样的问题。

这是他们发送给我们的电子邮件:

你好,

该消息是为了建议您在数据库上放置一个临时块。发现该数据库消耗了过多的处理器时间,从而降低了整体系统性能。尽管我们确实将每个帐户的服务范围限制为不超过系统CPU的25%,但我们不会主动禁用帐户,直到它们大大超过该数目(在这种情况下就是这种情况)。通过在有限的时间内限制查询或连接的最大数量,可能会降低对该数据库的请求,或者如果存在持续的问题,最终我们可能被迫阻止对该数据库的访问,直到问题解决为止。

解决这种情况可能很简单,例如向数据库中添加其他索引,优化使用的查询或同样容易的事情。如果没有,则可能只是将数据库移至专用服务,因为它可能已经超出了共享环境。

如果您认为可以解决这种过度使用问题,我们很乐意与您讨论这种情况,并可能在服务器上恢复数据库。否则,如果专用服务器是最合适的解决方案,我们将很乐意协助您进行升级。谢谢,我们期待着您的回音。

~~~
MySQL过多活动是由(a)长时间运行的进程锁定表,导致备份其他查询,(b)未优化的查询引起的。 [复杂查询],(c)高峰时段的大量表副本/维护。

注意:以下只是可能的修复或建议,而不受HostGator认可或支持。包含它们是希望它们可以应用于您的情况,和/或帮助您减少SQL查询消耗的资源量。与往常一样,最好在进行任何更改或调整之前备份所有数据。

首先,您可能需要优化表。频率取决于数据库的大小和使用情况,但是大多数数据库每年都可以通过执行以下操作而受益:a)输入您的phpMyAdmin / MySQL控制面板。单击数据库(而不是表,数据库名称),然后在右列上列出您的表。向下滚动,直到看到.Check all。链接。单击该链接,确保选中所有数据库表,然后从其旁边的下拉列表中仔细选择.Optimize table。

此外,向表中添加索引可以提高性能。如果不确定自己在做什么,最好不要修改任何表。建议谨慎使用。有各种各样的文章

如果您使用IP地址(http://www.hostgator.com/ip.shtml)对此进行回复,我们将非常乐意为您启用HTTP访问,以便您可以安全地处理脚本而不会引起进一步的问题。请让我们知道您要如何进行。

CPU_TIME:138 table_rows_read:402659370 SELECTS:134266 ROWS_UPDATED:66854 ROWS_FETCHED:200708 BUSY_TIME:141 ONNECTED_TIME:159 BYTES_SENT:0 BYTES_RECEIVED:16653735 WAIT_TIME:3

顶部表格行显示:

DB_USER:创新-TOTAL_CONNECTIONS:279-CONNECTED_TIME:159-CPU_TIME:138-TABLE_ROW_READS:402664343-SELECT_COMMANDS:134301-UPDATE_COMMANDS:-BUSY_TIME:141-BYTES_SENT:0-BYTES_RECEIVED:16658133-等待(IO):3

等待时间(IO):

DB_USER:创新-TOTAL_CONNECTIONS:279-CONNECTED_TIME:159-CPU_TIME:138-TABLE_ROW_READS:402664343-SELECT_COMMANDS:134301-UPDATE_COMMANDS:-BUSY_TIME:141-BYTES_SENT:0-BYTES_RECEIVED:16658133-等待(IO):3

创新10050 0.0 0.0 0.0 19964 1340 SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新10200 0.0 0.0 0.0 17768 1084 SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新10381 0.0 0.0 0.018040 1604 SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新10539 0.0 0.0 18036 1584? SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新21266 15.0 0.0 295808 15884? RN 02:31 0:00 / usr / bin / php /home3/innovate/public_html/developer/innovativeresearch/admin/addtotable.php

2013年11月14日星期四02:31:25

运行过程:

创新10050 0.0 0.0 0.0 19964 1340 SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新10200 0.0 0.0 0.0 17768 1084 SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新10381 0.0 0.0 0.018040 1604 SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新10539 0.0 0.0 18036 1584? SN 02:29 0:00 imap [anthonysinclair@creavation.com 90.220.91.59]

创新21266 15.0 0.0 295808 15884? RN 02:31 0:00 / usr / bin / php /home3/innovate/public_html/developer/innovativeresearch/admin/addtotable.php

运行查询:

************* 1.行*************

用户:创新

DB:innovate_research

州:

时间:0

命令:睡眠

INFO:空

打开连接

当前的站点请求:

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

99.231.106.237 creavation.com /developer/innovativeresearch/admin/addtotable.php?addprod=

这是我们从以下位置购买国家,州,城市数据库的地方:

http://www.worldcitiesdatabase.com/world-cities.aspx

在这方面的任何帮助将不胜感激:(

<?php //require_once('inc/config.php');?>
<?php
//check();          //check admin login

$link = mysql_connect('localhost', 'innovate', '4HIDDENW8n');
$db_selected = mysql_select_db('innovate_research', $link);

/*$sql = "select * from country";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res))
{
    $sql=mysql_query("INSERT INTO `innovere_country` (`country_name` ,`country_code`) VALUES ('".$row['country_name']."', '".$row['country_code']."');");
}*/


/*$sql = "select * from states";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res))
{

    $sql_country = mysql_fetch_array(mysql_query("select * from innovere_country where `country_code`='".$row['country_code']."'"));

    $sql=mysql_query("INSERT INTO `innovere_state` (`country_id` ,`state_name` ,`state_code`) VALUES ('".$sql_country['country_id']."',  '".addslashes($row['state_name'])."',  '".$row['state_code']."');");
}*/

ini_set('max_execution_time', 0);
$sql_count = mysql_fetch_array(mysql_query("select count(*) as num_c from weblocations"));

if(empty($_REQUEST['startpaging']))
{
    $_REQUEST['startpaging']=0;
}

$startpaging = $_REQUEST['startpaging']+240;    
echo "<br>add : ".$addprod=$_REQUEST['addprod'];

echo $sql = "select * from weblocations limit $startpaging,240";
$res=mysql_query($sql);

while($row=mysql_fetch_array($res))
{
    $addprod++;
    if(!empty($row['country_code']))
    {
    $sql_country = mysql_fetch_array(mysql_query("select * from innovere_country where `country_code`='".$row['country_code']."'"));
    }

    if(!empty($row['state_code']))
    {
    $sql_state = mysql_fetch_array(mysql_query("select * from innovere_state where `state_code`='".$row['state_code']."' and `country_id`='".$sql_country['country_id']."'"));
    }

    $sql=mysql_query("INSERT INTO `innovere_city` (`state_id` ,`country_id` ,`city_name`) VALUES ('".$sql_state['state_id']."',  '".$sql_country['country_id']."',  '".addslashes($row['city_name'])."');");
    echo "<br>"."INSERT INTO `innovere_city` (`state_id` ,`country_id` ,`city_name`) VALUES ('".$sql_state['state_id']."',  '".$sql_country['country_id']."',  '".$row['city_name']."');";
}

echo "<br>total : ".$sql_count['num_c'];
echo "<br>add : ".$addprod;

if($sql_count['num_c']>$addprod)
{
echo "<script>document.location.href='addtotable.php?addprod=".$addprod."&startpaging=".$startpaging."'</script>";
}

        /*ini_set('max_execution_time', 0);
        $country_code = "AF";

        $sql_count = mysql_fetch_array(mysql_query("select count(*) as count_num from weblocations where `       country_code`='".$country_code."'"));

        echo "<br>Count: ".$sql_count['count_num'];

        echo $sql = "select * from weblocations where `country_code`='".$country_code."'";
        $res=mysql_query($sql);

        while($row=mysql_fetch_array($res))
        {
        if(!empty($row['country_code']))
        {
        $sql_country = mysql_fetch_array(mysql_query("select * from innovere_country where `      country_code`='".$row['country_code']."'"));
        }

        if(!empty($row['state_code']))
        {
        $sql_state = mysql_fetch_array(mysql_query("select * from innovere_state where `      state_code`='".$row['state_code']."' and `country_id`='".$sql_country['country_id']."'"));
        }

        $sql=mysql_query("INSERT INTO `innovere_city` (`state_id` ,`country_id` ,`city_name`) VALUES ('".$sql_state['state_id']."',  '".$sql_country['country_id']."',  '".addslashes($row['city_name'])."');");
        echo "<br>"."INSERT INTO `innovere_city` (`state_id` ,`country_id` ,`city_name`) VALUES    ('".$sql_state['state_id']."',  '".$sql_country['country_id']."',  '".$row['city_name']."');";
    }*/

    ?>


这是我们拥有的表的列表:

表1:innovere_city行= 1,604,640 MyISAM utf8_general_ci 73.8 MiB,
表2:innovere_country行数= 247 MyISAM utf8_general_ci 10.7 KiB
表3:网站行数= 2,449,838 MyISAM utf8_persian_ci 127.1 MiB
表4:innovere_state行:3,874 MyISAM utf8_general_ci 185.1 KiB
表5:国家行数= 247 MyISAM utf8_persian_ci 6.3 KiB

我刚刚意识到我们有两个国家/地区表?

最佳答案

如果我打赌,我怀疑问题是您返回的行太多了,而您需要使用的是一个层叠的下拉列表。搜索“ javascript Cascadeing dropdrown”将显示许多示例,包括jquery和其他填充脚本库。

添加

如果您了解“级联下拉菜单”,您将知道需要更改的内容-为了简单起见,我将假设使用jquery。其想法是仅在最初仅填充顶级(国家/地区)SELECT的情况下为网页提供服务。通过对国家SELECT进行更改的jquery事件处理,您可以对服务器进行AJAX调用,以在他们选择美国或省时选择“州”,然后再选择加拿大,等等。然后,从中填充“州/地区” SELECT对于级联下拉菜单的每个级别也是如此。

JQuery(和其他脚本库)具有使您变得简单的所有功能-如果您不使用脚本库-请花点时间立即学习JQuery-这将是您有史以来学习的最佳时间网站开发。 JQuery被广泛使用是有充分理由的。

关于php - 我们已经在注册表格上设计了国家,州,城市下拉菜单功能,但是我们的房东在我们的数据库上放置了一个阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19986010/

相关文章:

php - 如果特定行数据尚未在同一日期插入,如何检查和插入数据

php - Yii - 获取自动递增 id

php - Selectpicker 在 optgroup 中添加选项

php - 使用 PHP 锁定 MYSQL 表

php - 无法访问 CodeIgniter 站点

mysql - scrapy导出到数据库多个表

javascript - 当滚动 DIV Tooltip 快速移动时

php - mysql 和 php 安全 : database as catalog only

java - 处理 '\&' 从 java 到 SP(除了设置定义/扫描关闭)

mySQL查询查找两行时间不满足条件的地方