Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 主要问题仍然是,每个SELECT查询将花费很长时间,因为它必须遍历该表中的700万行。我想知道如何加快速度。是的,在html中包含国家->州是明智的。但到那时,这些城市仍需要很长时间才能恢复。有没有办法加快速度?索引是关于什么的?你能告诉我更多关于它的信息_Php_Mysql_Database_Caching - Fatal编程技术网

Php 主要问题仍然是,每个SELECT查询将花费很长时间,因为它必须遍历该表中的700万行。我想知道如何加快速度。是的,在html中包含国家->州是明智的。但到那时,这些城市仍需要很长时间才能恢复。有没有办法加快速度?索引是关于什么的?你能告诉我更多关于它的信息

Php 主要问题仍然是,每个SELECT查询将花费很长时间,因为它必须遍历该表中的700万行。我想知道如何加快速度。是的,在html中包含国家->州是明智的。但到那时,这些城市仍需要很长时间才能恢复。有没有办法加快速度?索引是关于什么的?你能告诉我更多关于它的信息,php,mysql,database,caching,Php,Mysql,Database,Caching,主要问题仍然是,每个SELECT查询将花费很长时间,因为它必须遍历该表中的700万行。我想知道如何加快速度。是的,在html中包含国家->州是明智的。但到那时,这些城市仍需要很长时间才能恢复。有没有办法加快速度?索引是关于什么的?你能告诉我更多关于它的信息吗?MySQL手册是你的朋友。发布您的代码/SQL也是如此,这样我们就不会盲目了。在您的建议之后,我无法规范化我的数据是有原因的。原因某些条目不会遵循基本结构。一些条目(城市)有后代(地区、郊区)等等,因此它不是遵循静态结构,而是动态结构。这就


主要问题仍然是,每个SELECT查询将花费很长时间,因为它必须遍历该表中的700万行。我想知道如何加快速度。是的,在html中包含国家->州是明智的。但到那时,这些城市仍需要很长时间才能恢复。有没有办法加快速度?索引是关于什么的?你能告诉我更多关于它的信息吗?MySQL手册是你的朋友。发布您的代码/SQL也是如此,这样我们就不会盲目了。在您的建议之后,我无法规范化我的数据是有原因的。原因某些条目不会遵循基本结构。一些条目(城市)有后代(地区、郊区)等等,因此它不是遵循静态结构,而是动态结构。这就是为什么geonames只有一个表,并且每个条目都通过parent_id链接到父条目。请读取我的更新。我发布了sql结构。我将看一看索引…听起来像是一个解决方案。您的sql语句与此语句之间的区别是什么:在表上创建索引\u name(columnname1\u columnname2)”;我相信它们是等价的语法(syntaxi?syntaxen?).CREATE INDEX要求您为索引指定一个名称,这并不是必需的。查看表结构,在(父项id、功能项类)上创建一个索引应该这样做。如果在MySql中有任何方法可以这样做,您可能希望通过查看查询执行计划来验证是否正在使用索引。这涉及到一些折衷,但我也注意到,有时会对我正在查找的字段进行加钉(如果它们不是很大的话)由于所有信息都可以直接从索引中检索,而无需查找回表中,因此在索引末尾添加索引可以加快查询速度。请测试并确定最适合您的方法。
CREATE TABLE `geonames_copy` (
  `geoname_id` mediumint(9) NOT NULL,
  `parent_id` mediumint(9) DEFAULT NULL,
  `name` varchar(200) DEFAULT NULL,
  `ascii_name` varchar(200) DEFAULT NULL,
  `alternate_names` varchar(4000) DEFAULT NULL,
  `latitude` decimal(10,7) DEFAULT NULL,
  `longitude` decimal(10,7) DEFAULT NULL,
  `feature_class` char(1) DEFAULT NULL,
  `feature_code` varchar(10) DEFAULT NULL,
  `country_code` varchar(2) DEFAULT NULL,
  `cc2` varchar(60) DEFAULT NULL,
  `admin1_code` varchar(20) DEFAULT NULL,
  `admin2_code` varchar(80) DEFAULT NULL,
  `admin3_code` varchar(20) DEFAULT NULL,
  `admin4_code` varchar(20) DEFAULT NULL,
  `population` bigint(20) DEFAULT NULL,
  `elevation` int(11) DEFAULT NULL,
  `gtopo30` smallint(6) DEFAULT NULL,
  `time_zone` varchar(40) DEFAULT NULL,
  `modification_date` date DEFAULT NULL,
  PRIMARY KEY (`geoname_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
            $query = "SELECT geoname_id, name
                    FROM geonames
                    WHERE parent_id = '$geoname_id'
                    AND (feature_class = 'A')";
usa;fl;miami;....
usa;fl;orlando;....
COUNTRY Table:
--------------
COUNTRY_KEY            1
THREE_LETTER           'usa'
COUNTRY_NAME           'united states'
..OTHER COLUMNS....

REGION Table:
--------------
COUNTRY_KEY            1
REGION_KEY             10
REGION_CODE            'fl'
REGION_NAME            'florida'
..OTHER COLUMNS....

CITY Table:
--------------
REGION_KEY             10
CITY_KEY               20
CITY_NAME              'miami'
LAT                    123.12
LONG                   123.12
..OTHER COLUMNS----
SELECT country_key, three_letter 
FROM COUNTRY 
ORDER BY three_letter;
SELECT region_key, region_code 
FROM REGION WHERE country_key = :input_country_key 
ORDER BY region_code;
ALTER TABLE geonames_copy ADD INDEX (parent_id, feature_class);