`
insky
  • 浏览: 38201 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

mysql查询效率低下的原因

阅读更多
用Perl插入数据到mysql发现查询某一ip是否在IP表中存在耗时特别多,代码如下:

			$sql_checkIp = "select ip_id from `ip` where ip_address = '$ip_address'";
			
			$sth = $dbh->prepare($sql_checkIp);
			$sth->execute;
			while (@data = $sth->fetchrow_array()) {
				#print "data is : $data[0]\n";
				$ip_id = $data[0];
			 }


对200M的数据测试,整个程序耗时13h40m36s,其中这部分耗时13h37m43s,占到了99.648%

表的结构很简单,如下:
CREATE TABLE `ip` (
  `ip_id` int(11) NOT NULL auto_increment,
  `ip_address` char(20) character set latin1 NOT NULL,
  `port` int(11) default NULL,
  `city_id` int(11) default '0',
  `country_id` int(11) default '0',
  `item_id` int(11) default '0',
  `client` char(20) character set latin1 default NULL,
  `percentage` int(11) NOT NULL default '0',
  `insert_time` timestamp NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`ip_id`),
  KEY `index_ip_ipId` (`ip_id`)
) ENGINE=MyISAM AUTO_INCREMENT=765970 DEFAULT CHARSET=utf8 ROW_FORMAT=REDUNDANT;



对ip_id,ip_address建立索引,实现的功能大体是:从IP表中查询某一ip_1是否在IP表中出现,IP现在有6,609,867数据,可能按照每天32,363条的速率增长。

向各位请教,是什么原因导致了效率低下???
分享到:
评论

相关推荐

    MySQL错误代码查询

    通过了解这些常见的MySQL错误代码,你可以更快地诊断和解决问题,提高数据库操作的效率。在实际应用中,记得经常查阅MySQL官方文档,以获取最新的错误代码信息和解决策略。同时,保持良好的数据库管理和维护习惯,...

    mysql.data版本集合

    6. **查询优化**:使用EXPLAIN分析查询语句的执行计划,找出可能导致效率低下的原因,如不恰当的JOIN操作、子查询过度使用等。优化查询语句能提高查询速度。 7. **数据字典维护**:定期更新数据库的元数据,确保...

    MySQL数据库查询优化方案.docx

    MySQL 数据库查询优化是指对数据库中的查询语句进行优化,以提高查询效率和数据库性能。以下是 MySQL 数据库查询优化的一些重要知识点: 一、索引相关 索引是 MySQL 数据库查询优化的重要手段。索引可以提高查询...

    二、mysql优化技术-定位慢查询

    慢查询通常是由于不恰当的索引使用、过度的数据扫描、复杂的查询逻辑或是资源争抢等原因造成的。下面我们将深入探讨这些知识点: 1. **分析工具与日志**: MySQL提供了一个名为`slow_query_log`的功能,可以记录...

    MySQL优化之如何查找SQL效率低的原因

    查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 ...

    mysql查询速度优化从3万秒到0.001秒共14页.pd

    例如,使用EXPLAIN分析查询计划,找出慢查询的原因并进行调整。 3. **数据库设计优化**:数据库的设计直接影响查询性能,如范式理论的应用、数据冗余的控制、数据分区等都是设计时需要考虑的因素。合理的数据库设计...

    MySQL千万级大表深度分页为什么慢,以及优化的方法、原理

    【MySQL千万级大表深度分页慢的原因及优化方法】 在MySQL中,处理千万级大表的深度分页查询时,通常会遇到性能问题。这是因为MySQL的查询优化器在面对大量数据的分页请求时,可能选择全表扫描而不是利用索引来提高...

    高效MySQL查询加速指南:索引策略、查询优化、性能调优,助力数据库管理员和开发者突破性能瓶颈

    ### 高效MySQL查询加速指南:索引策略、查询优化、性能调优 在数据库管理和开发领域中,MySQL因其灵活性和高效性而受到广泛欢迎。然而,在面对大规模数据集时,即使是性能强大的MySQL也可能遇到查询速度慢的问题。...

    基于MySQL的查询优化技术.pdf

    本文主要探讨了如何通过创建索引来优化MySQL的查询效率,以满足用户对快速数据库查询的需求。 首先,查询速度慢的原因可能多种多样,包括但不限于网络延迟、内存限制、I/O性能以及查询语句的设计和优化。当查询的...

    MySQL下PID文件丢失的相关错误的解决方法

    使用`EXPLAIN`分析查询计划,优化索引,或调整查询逻辑以提高效率。 综上,解决MySQL PID文件丢失的问题需要综合分析日志、配置文件、权限、进程状态等多个方面。在排查过程中,务必谨慎操作,避免对生产环境造成...

    mysql服务器查询慢原因分析与解决方法小结

    8. **查询优化**:对查询语句进行重构,使用更高效的JOIN策略,避免子查询,使用UNION ALL代替UNION等,都能提高查询效率。 9. **数据库设计优化**:合理设计数据库结构,如使用合适的数据类型,避免数据冗余,以及...

    MySQL驱动包.zip

    MySQL驱动包主要用于帮助Java应用程序与MySQL数据库之间建立连接,从而执行SQL查询和管理数据库操作。这个zip文件包含的"mysql-connector-java-8.0.13.jar"是MySQL官方提供的JDBC(Java Database Connectivity)驱动...

    查询mysql中执行效率低的sql语句的方法

    - `EXPLAIN`关键字配合SELECT语句,可以显示MySQL如何执行SQL查询,包括是否使用了索引,扫描了多少行等,帮助理解查询效率低的原因。对于UPDATE或DELETE语句,需要先将其转换为SELECT语句进行分析。 4. **监控...

    Mysql57安装升级.zip

    3. 查询优化器改进:新的查询优化器能够更好地处理复杂查询,通过改进的统计信息和成本估算,提高了查询计划的准确性和执行效率。 4. 空间索引优化:对于地理空间数据,MySQL 5.7提升了空间索引的性能,使得地理...

    Mysql Explain

    在数据库查询优化领域,`EXPLAIN` 是一个非常强大的工具,它能够帮助我们分析 `SELECT` 语句的执行过程,揭示出查询效率低下的原因。通过 `EXPLAIN` 的分析结果,我们可以针对性地对查询语句进行优化,从而使查询...

    MySQL大数据量分页查询方法及其优化

    - **原因**:除了利用索引提高查询效率外,使用预编译语句还可以进一步减少解析成本,从而提高整体性能。 #### 方法5:利用ORDER BY和索引快速定位 - **语句样式**:`SELECT * FROM your_table WHERE pk >= 1000 ...

    finereport在数据集中sql执行没结果,而放到mysql数据库中查询有结果.docx

    #### 常见原因分析 针对这一问题,可以从以下几个方面进行排查: 1. **字符集编码问题**:当SQL语句中包含了中文或其他特殊字符时,如果数据库和设计器中的字符集设置不一致,则可能导致字符编码错误,进而使得SQL...

    mysql Join使用以及优化

    接下来,关于DBA不让使用Join的问题,其主要原因是不恰当的Join操作可能会导致查询效率极低。如果表很大或者数据没有合适索引,Join操作会消耗巨大的资源,导致性能问题。在没有索引或者索引设计不合理的情况下,...

    高性能mysql学习笔记

    #### 一、查询性能低下的原因与分析步骤 查询性能低下通常归因于访问了过多的数据。优化查询性能的关键在于识别并减少不必要的数据访问。具体可以通过以下两个步骤进行分析: 1. **查明应用程序是否正在获取超过...

Global site tag (gtag.js) - Google Analytics