彩神排列三_神彩排列三官方

线上MySQL数据库高负载的解决思路

时间:2020-01-09 06:41:05 出处:彩神排列三_神彩排列三官方

  `category_show` tinyint(1) unsigned NOT NULL COMMENT

  `category_order` tinyint(1) unsigned NOT NULL default '0' 

| 3634784150 | apps_read     | 192.168.1.113:48948 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

查看此表的数据库表型态如下:

查看守护进程。通过猜测推理,定位了或多或少select一段话

363478427 | apps_read     | 192.168.1.113:48945 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

| category_doc_info | CREATE TABLE `category_doc_info` (

 where (doc_title = '????')                                           | 

场景:数据库的负载飙升,CPU高达99%。

  `category_Coordinate` tinyint(1) unsigned NOT NULL default '2',

+----+-------------+-------------------+------+---------------+------+---------+------+--------+-------------+

 where (doc_title = '??')                                             | 

 where (doc_title = '??????')                                         | 

| 363478535 | apps_read     | 192.168.1.113:48965 | apps       | Query       |       0 | Sending data                                                   | select * from category_doc_info

| id | select_type | table             | type | possible_keys | key  | key_len | ref  | rows   | Extra       |

| 363478462 | apps_read     | 192.168.1.113:48957 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

  `doc_title` varchar(255) NOT NULL',

  `category_order` tinyint(1) unsigned NOT NULL default '0',

  UNIQUE KEY `INDEX_SEARCH` (`category_id`,`doc_title`),

 where (doc_title = 'T2??')                                           | 

mysql> explain  select * from category_doc_info where (doc_title = '独出新裁');

  `id` int(10) unsigned NOT NULL auto_increment,

 where (doc_title = '???')                                            | 

 where (doc_title = '??????')                                         | 

  `category_id` int(10) unsigned NOT NULL,

  `category_Coordinate` tinyint(1) unsigned NOT NULL default '2' 

查看具体的每根绳子 SQL一段话的执行计划,如下:

| 3634786150 | apps_read     | 192.168.1.113:48975 | apps       | Query       |       0 | Sending data                                                   | select *

| 363478613 | apps_read     | 192.168.1.113:48971 | apps       | Query       |       0 | Sending data                                                   | select * from category_doc_info

| 363478434 | apps_read     | 192.168.1.113:48952 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

  `category_id` int(10) unsigned NOT NULL COMMENT

 where (doc_title = '????????')                                       | 

 where (doc_title = '?????????')                                      | 

 where (doc_title = '???')                                            | 

  `doc_title` varchar(255) NOT NULL COMMENT 

都时要发现都是全表查询,之后是高并发的访问上述一段话。

| 363478437 | apps_read     | 192.168.1.113:48955 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

| category_doc_info | CREATE TABLE `category_doc_info` (

| 363478511 | apps_read     | 192.168.1.113:48963 | apps       | Query       |       0 | Sending data                                                   | select * from category_doc_info

  PRIMARY KEY  (`id`),

+----+-------------+-------------------+------+---------------+------+---------+------+--------+-------------+

  `category_show` tinyint(1) unsigned NOT NULL,

经过分析,修改生产环境的表型态,如下:

) ENGINE=InnoDB AUTO_INCREMENT=3431502 DEFAULT CHARSET=utf8 | 

| 3634781150 | apps_read     | 192.168.1.113:489150 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

前言:过去的笔记架构设计 而得,未免丢失,发布当事人博客。[2012年的资料笔记]

  KEY `idx_category_title` (`doc_title`)                            //新加上的表索引

 where (doc_title = '???')                                            | 

+----+-------------+-------------------+------+---------------+------+---------+------+--------+-------------+

---------------------------------------------------------------------------------------------------------------------------------------------------------

) ENGINE=InnoDB AUTO_INCREMENT=3431502 DEFAULT CHARSET=utf8 |

让上述的守护进程应用走索引,数据库的负载恢复正常,性能恢复正常。 

| 363478518 | apps_read     | 192.168.1.113:48964 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

| 363478540 | apps_read     | 192.168.1.113:48968 | apps       | Query       |       1 | Sending data                                                   | select * from category_doc_info

|  1 | SIMPLE      | category_doc_info | ALL  | NULL          | NULL | NULL    | NULL | 232717 | Using where | 

---------------------------------------------------------------------------------------------------------------------------------------------------------

  UNIQUE KEY `INDEX_SEARCH` (`category_id`,`doc_title`),     

 where (doc_title = '???????')                                        | 

  PRIMARY KEY  (`id`),

  `id` int(10) unsigned NOT NULL auto_increment,

热门

热门标签