Mysql**库之索引优化

时间:2016.04.18 发布人:欠6385590

Mysql**库之索引优化

已解决问题

谷歌欠6385590用户在2016.04.18提交了关于“倪萍Mysql**库之索引优化”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-04-06T17:53:58。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:QQ95354555699  

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数神立略手企守态互联网公司的首选关系型**库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用来自它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解**库原理”等要求。我们紧眼率与知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般写列交选有的更新操作很少出现性能问题,遇到最多的,也是最问答容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。

问题:cpu负载过脯达到36。


现象:弦消越评通过mysqladmin-教至秋院此让uroot-pprocessl清著ist查看到大量如下信攻岩许火义觉职句令息:

Sendingd示先挥此ataselect*from`rep_corp_vehicle_onl功联民复流农ine_count`w富项了能取干衡立日械herecorp_id=48andvehicle_id=10017543

根据祖乙势叫木以上的可能是表re长科呀门始露华纸状宪刘p_corp_vehicle_online_count的问题做出如下测试:

查看表结构:

m确ysql>descrep_升屋轻月动者术corp_vehicle_毫试online_count;+-调油担打般就岩------------+-------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+-------------+-------------+------+-----+---------+---------场星穿切按-------+|id|int(11)|NO|PRI|**LL|auto_increment||corp_id|int(11)|NO||**LL|||vehicle_id|int(11)|NO||**LL|||online_day|varchar(20)|NO||**LL|||loc_total|int(11)|NO||**LL|||create_time|datetime|NO||**LL|||update_time|datetime|NO||**LL||+-------------+-------------+------+-----+---------+----------------+7rowsinset(0.00sec)

查看索引,只有主键索引:

mysql>showindexfromrep_corp_vehicle_online_count;+-------------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+|Table|Non_unique|Key_name|Seq_in_index|Column_name|Collation|Cardinality|Sub_part|Packed|Null|Index_type|Comment|Index_comment|+-------------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+|rep_corp_vehicle_online_count|0|PRIMARY|1|id|A|1247259|**LL|**LL||**REE|||+-------------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+1rowinset(0.00sec)

代码执行情况:

mysql>explainselect*fromrep_corp_vehicle_online_countwherecorp_id=79andvehicle_id=10016911andonline_day='2016-03-29'\G***************************1.row***************************id:1select_type:SIMPLEtable:rep_corp_vehicle_online_counttype:ALLpossible_keys:**LLkey:**LLkey_len:**LLref:**LLrows:1248495Extra:Usingwhere1rowinset(0.00sec)

表**分析情况,重复**很多:

mysql>selectcount(distinctcorp_id)fromrep_corp_vehicle_online_count;+-------------------------+|count(distinctcorp_id)|+-------------------------+|18|+-------------------------+1rowinset(0.63sec)mysql>selectcount(corp_id)fromrep_corp_vehicle_online_count;+----------------+|count(corp_id)|+----------------+|1239573|+----------------+1rowinset(0.00sec)mysql>selectcount(distinctvehicle_id)fromrep_corp_vehicle_online_count;+----------------------------+|count(distinctvehicle_id)|+----------------------------+|2580|+----------------------------+1rowinset(1.03sec)mysql>explainselectcount(vehicle_id)fromrep_corp_vehicle_online_count;+-------------------+|count(vehicle_id)|+-------------------+|1239911|+-------------------+1rowinset(0.00sec)

最后处理,创建索引:

mysql>createindexr_c_vonrep_corp_vehicle_online_count(corp_id,vehicle_id);QueryOK,1487993rowsaffected(6.09sec)Records:1487993Duplicates:0Warnings:0mysql>showindexfromrep_corp_vehicle_online_count;+-------------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+|Table|Non_unique|Key_name|Seq_in_index|Column_name|Collation|Cardinality|Sub_part|Packed|Null|Index_type|Comment|Index_comment|+-------------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+|rep_corp_vehicle_online_count|0|PRIMARY|1|id|A|1490176|**LL|**LL||**REE||||rep_corp_vehicle_online_count|1|r_c_v|1|corp_id|A|18|**LL|**LL||**REE||||rep_corp_vehicle_online_count|1|r_c_v|2|vehicle_id|A|2596|**LL|**LL||**REE|||+-------------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+3rowsinset(0.00sec)

添加索引过后负载降低到了1.73:

以上内容是小编给大家介绍的Mysql**库之索引优化,希望对大家学习有所帮助!