未加星标

MySQL的SQL语句优化一例

字体大小 | |
[数据库(mysql) 所属分类 数据库(mysql) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

今天在系统上看到一条SQL运行时间达到9秒,不符合规范要求,优化之,sql如下:sql强制用 了 into_time索引

# Time : 2017 - 02 - 14T11 : 35 : 01 . 594499 + 08 : 00 # User @ Host : oms_readonly [ oms_readonly ] @ [ 10 . 44 . xxx . xxx ] Id : 41636892 # Query_time : 9 . 299612 Lock_time : 0 . 000124 Rows_sent : 20 Rows_examined : 2439330 SET timestamp = 1487043301 ; select * from customers force index ( ` into_time` ) where ` type ` = 1 AND `status` < 7 AND `isarea` = 8 AND `into_time` < = '2017-01-31 23:59:59' order by score desc limit 0 , 20 ;

查看表的相关状态:

mysql > show table status like 'customers' \G ; * * * * * * * * * * * * * * * * * * * * * * * * * * * 1 . row * * * * * * * * * * * * * * * * * * * * * * * * * * * Name: customers Engine: InnoDB Version : 10 Row_format: Dynamic Rows: 2504609 Avg_row_length: 710 Data_length: 1780383744 Max_data_length: 0 Index_length: 1253048320 Data_free: 6291456 Auto_increment : 2546101 Create_time: 2017-01-07 01:59:34 Update_time: 2017-02-14 13:58:17 Check_time: NULL Collation : utf8_general_ci Checksum : NULL Create_options: Comment: 1 row in set ( 0 . 00 sec ) 表一共大约有250万行记录,查看 下满足 into_time < = '2017-01-31 23:59:59'这个条件的有多少行

mysql > select count ( * ) from customers where `into_time` < = '2017-01-31 23:59:59' ;

+ - - - - - - - - - - + | count ( * ) | + - - - - - - - - - - + | 2439147 | + - - - - - - - - - - + 1 row in set ( 0 . 95 sec )
显然 into_time这个列的索引已经不合适了 ,查看下表上都有那些索引
Create Table : CREATE TABLE `customers` ( `id` int ( 11 ) NOT NULL AUTO_INCREMENT , PRIMARY KEY ( `id` ) , KEY `newdata` ( `newdata` ) , KEY `cusname` ( `cusname` ) , KEY `type` ( `type` , `ownerid` ) , KEY `operator` ( `operator` ) , KEY `into_time` ( `into_time` ) , KEY `isarea` ( `isarea` ) , KEY `linkcase` ( `linkcase` ) , KEY `score` ( `score` ) , FULLTEXT KEY `fdx_cusname` ( `cusname_idx`

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

主题: SQLMySQLInnoDBFUAUTAUUTRYRIM
分页:12
转载请注明
本文标题:MySQL的SQL语句优化一例
本站链接:http://www.codesec.net/view/534846.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(50)