亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > 文庫 > 正文

建表和sql不規范 導致 服務器幾乎無反應

2024-09-07 22:12:41
字體:
來源:轉載
供稿:網友
         建表和sql不規范 導致 服務器幾乎沒反應
 
問題描述:
 
1)研發人員說測試庫session滿了,請求調大最大連接數。
 
      數據庫中發現大量(1944個)的session,語句基本相同,SELECT * FROM ali_phone_info where phone=13004669173 , 處于sending data狀態。
 
      服務器連ssh登陸都很困難。
 
      mysql> show processlist;
 
+--------+--------+-----------------------+--------+---------+------+--------------+------------------------------------------------------+
 
| 413853 | sx_pac | 180.169.233.185:46268 | sx_pac | Query   |  461 | Sending data | SELECT * FROM ali_phone_info where phone=13004669173 |
 
| 413588 | sx_pac | 180.169.233.185:27527 | sx_pac | Query   |  438 | Sending data | SELECT * FROM ali_phone_info where phone=15577861724 |
 
| 413589 | sx_pac | 180.169.233.185:27526 | sx_pac | Query   |  438 | Sending data | SELECT * FROM ali_phone_info where phone=13175885461 |
 
| 413590 | sx_pac | 180.169.233.185:27520 | sx_pac | Query   |  429 | Sending data | SELECT * FROM ali_phone_info where phone=15578128274 |
 
...
 
| 74405 | sx_pac | 180.169.233.185:11350 | sx_pac | Query   |    0 | query end    | create table IF NOT EXISTS o2o_huangye_info(
 
                primary_key VARCHAR (255) not null  pri |
 
+--------+--------+-----------------------+--------+---------+------+--------------+------------------------------------------------------+
 
1944 rows in set (0.01 sec)
 
開發同學說這些查詢的sql,是在insert之前的驗證步驟,如果有就不用再insert了。
 
error log 很多如下信息:
 
2018-09-04T13:17:43.990352+08:00 21201 [Note] Aborted connection 21201 to db: 'sx_pac' user: 'sx_pac' host: '180.169.150.211' (Got an error reading communication packets)
 
2018-09-04T13:18:26.263859+08:00 21220 [Note] Aborted connection 21220 to db: 'sx_pac' user: 'sx_pac' host: '180.169.150.211' (Got an error reading communication packets)
 
2018-09-04T13:32:24.931968+08:00 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 4900ms. The settings might not be optimal. (flushed=5 and evicted=0, during the time.)
 
2)服務器配置 2c4G, centos7.x
 
mysql相關參數:
 
innodb_buffer_pool_size      | 5G      //阿里云rds 25G / 12G
 
innodb_buffer_pool_instances | 2       //阿里云rds  8  / 4
 
innodb_io_capacity           | 200     //阿里云rds 是 2000 ,都是固態硬盤啊
 
innodb_io_capacity_max       | 2000    //阿里云rds 是 4000
 
innodb_read_io_threads       | 4
 
innodb_write_io_threads      | 4
 
max_connections              | 2000    // 阿里云rds 是  8512 / 4512
 
log_warnings                 | 2
 
interactive_timeout          | 28800    //   服務器關閉交互式連接前等待活動的秒數,默認值:28800秒(8小時)
 
wait_timeout                 | 28800    //
 
innodb_page_cleaners         | 2        //   一般建議設置和innodb_buffer_pool_instances一致,5.6只有一個page_cleaner線程,5.7可以有多個
 
innodb_log_file_size         | 536870912   // 512M  ,阿里云rds 1.5G
 
innodb_log_files_in_group    | 2
 
innodb_lru_scan_depth        | 1024
 
3)其它信息展示:
 
mysql> analyze table ali_phone_info;
 
+-----------------------+---------+----------+----------+
 
| Table                 | Op      | Msg_type | Msg_text |
 
+-----------------------+---------+----------+----------+
 
| sx_pac.ali_phone_info | analyze | status   | OK       |
 
+-----------------------+---------+----------+----------+
 
1 row in set (0.03 sec)
 
mysql> show table status like 'ali_phone_info';
 
+----------------+--------+---------+------------+--------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
 
| Name           | Engine | Version | Row_format | Rows   | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation       | Checksum | Create_options | Comment |
 
+----------------+--------+---------+------------+--------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
 
| ali_phone_info | InnoDB |      10 | Dynamic    | 752640 |             56 |    42532864 |               0 |     20512768 |   4194304 |         787894 | 2018-09-21 19:30:27 | 2018-09-21 18:22:05 | NULL       | utf8_general_ci |     NULL |                |         |
 
+----------------+--------+---------+------------+--------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
 
1 row in set (0.00 sec)
 
mysql> show create table ali_phone_info;
 
+----------------+-------------------------------------------------------------------------------------+
 
| Table          | Create Table                                                                         
 
+----------------+-------------------------------------------------------------------------------------+
 
| ali_phone_info | CREATE TABLE `ali_phone_info` (
 
  `primary_key` int(11) NOT NULL AUTO_INCREMENT,
 
  `phone` varchar(255) NOT NULL,
 
  `plat_code` varchar(255) NOT NULL,
 
  `crawl_time` timestamp NULL DEFAULT NULL,
 
  `jrjt_del_dt` varchar(255) DEFAULT NULL,
 
  PRIMARY KEY (`primary_key`)
 
) ENGINE=InnoDB AUTO_INCREMENT=787894 DEFAULT CHARSET=utf8 |
 
+----------------+------------------------------------------------------------------------------------+
 
1 row in set (0.00 sec)
 
問題定位:
 
1.建表上
 
2.sql語句上
 
3.索引上
 
處理:
 
1.phone字段使用255個字符,完全沒有必要
 
2.phone字段是字段類型,sql使用時 卻是數字類型的值 “SELECT * FROM ali_phone_info where phone=15578128274”
 
3.這里用 “select * ” 驗證不符合規范,應該改寫 SELECT phone from ali_phone_info where phone='15578128274' ,
 
4.直接ddl方式建索引,鎖表時間長,57w行的數據,建索引進2個小數,線上環境是不行的。
 
mysql> alter table ali_phone_info add key idx_ali_phone_info01(phone(11));
 
Query OK, 0 rows affected (1 hour 54 min 30.51 sec)
 
Records: 0  Duplicates: 0  Warnings: 0
 
mysql> show create table ali_phone_info;
 
+----------------+-------------------------------------------------------------------------------------+
 
| Table          | Create Table                                                                         
 
+----------------+-------------------------------------------------------------------------------------+
 
| ali_phone_info | CREATE TABLE `ali_phone_info` (
 
  `primary_key` int(11) NOT NULL AUTO_INCREMENT,
 
  `phone` varchar(255) NOT NULL,
 
  `plat_code` varchar(255) NOT NULL,
 
  `crawl_time` timestamp NULL DEFAULT NULL,
 
  `jrjt_del_dt` varchar(255) DEFAULT NULL,
 
  PRIMARY KEY (`primary_key`),
 
  KEY `idx_ali_phone_info01` (`phone`(11))
 
) ENGINE=InnoDB AUTO_INCREMENT=787894 DEFAULT CHARSET=utf8 |
 
+----------------+------------------------------------------------------------------------------------+
 
1 row in set (0.00 sec)
 
5.大量的session,說明程序沒有使用連接池機制
 
  即使是爬蟲,前端發起大量session,但后端操作數據庫也是可以走連接池完成的,
 
6.沒使用緩存,做批量插入
 
7.在程序中建表
 
8.error log信息說明
 
[Note] Aborted connection 21201 to db:  ... (Got an error reading communication packets)
 
這種是網絡等原因導致,這里是session過多,導致系統資源耗盡,
 
如果是“Got  timeout  reading communication packets” ,則是會話的idle時間達到了數據庫指定的timeout時間
 
[Note] InnoDB: page_cleaner: 1000ms intended loop took 4900ms. The settings might not be optimal. (flushed=5 and evicted=0, during the time.)
 
Innodb page cleaner線程刷新策略
 
有以下幾個參數會影響到Page cleaner的行為:
 
innodb_lru_scan_depth
 
innodb_adaptive_flushing_lwm
 
innodb_max_dirty_pages_pct_lwm
 
innodb_io_capacity_max
 
innodb_flushing_avg_loops 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品国产aⅴ7777| 亚洲欧美日韩国产中文专区| 韩国v欧美v日本v亚洲| 国产精品高潮在线| 88国产精品欧美一区二区三区| 日韩中文在线观看| 亚洲男人av在线| 亚洲色图第一页| 日韩欧美国产骚| 亚洲第一精品自拍| 亚洲九九九在线观看| 精品一区二区亚洲| 成人av色在线观看| 91探花福利精品国产自产在线| 91欧美激情另类亚洲| 亚洲精品中文字幕女同| 亚洲一区二区三区成人在线视频精品| 97精品在线视频| 日韩高清有码在线| 热99精品只有里视频精品| 久久久999成人| 成人淫片在线看| 亚洲free嫩bbb| 国产精品v片在线观看不卡| 久久久女女女女999久久| 日韩精品视频中文在线观看| 亚洲免费人成在线视频观看| 国产精品9999| 中文字幕无线精品亚洲乱码一区| 黑人巨大精品欧美一区免费视频| 欧美又大又硬又粗bbbbb| 久久国内精品一国内精品| 精品国模在线视频| 中文字幕亚洲一区二区三区五十路| 97精品欧美一区二区三区| www.午夜精品| 亚洲欧美日韩区| 亚洲美女av网站| 国产精品视频专区| 国产福利视频一区二区| 欧美精品一本久久男人的天堂| 国产成人精品优优av| 国产精品美女www爽爽爽视频| 91精品国产综合久久久久久蜜臀| 欧美激情视频在线免费观看 欧美视频免费一| 国产成人高清激情视频在线观看| 亚洲精品黄网在线观看| 成人免费黄色网| 色婷婷综合久久久久中文字幕1| 国内精品久久久久久久久| 5566日本婷婷色中文字幕97| 亚洲3p在线观看| 国产大片精品免费永久看nba| 欧美色道久久88综合亚洲精品| 亚洲片av在线| 欧美特级www| 成人午夜小视频| 久久人91精品久久久久久不卡| 精品久久久久久久久久| 成人妇女免费播放久久久| 久久精品国产成人| 欧美黄网免费在线观看| 91精品国产色综合久久不卡98| 国产精品老女人精品视频| 亚洲一区二区在线| 久久精品成人动漫| 另类少妇人与禽zozz0性伦| 视频直播国产精品| 精品亚洲一区二区三区| 久久综合五月天| 91av视频在线免费观看| 日韩在线视频观看正片免费网站| 亚洲激情在线观看视频免费| 亚洲人成网站在线播| 久久久久亚洲精品成人网小说| 国产免费一区二区三区香蕉精| 亚洲国产成人精品电影| 亚洲欧美一区二区三区久久| 亚洲欧美在线一区| 一区三区二区视频| 欧美激情在线播放| 日韩一区二区av| 久久亚洲一区二区三区四区五区高| 久久人人爽人人爽人人片av高清| 久久成人这里只有精品| 91九色国产在线| 全亚洲最色的网站在线观看| 欧美一级片在线播放| 亚洲图中文字幕| 欧美一级成年大片在线观看| 久久中文字幕在线视频| 国产精品海角社区在线观看| 欧美成aaa人片免费看| 久久人人爽国产| 亚洲jizzjizz日本少妇| 成人精品在线观看| 精品美女久久久久久免费| 国产精品久久久久久搜索| 热99精品只有里视频精品| 亚洲xxxxx| 91精品在线看| 欧美一区视频在线| 欧美日韩在线观看视频| 久久免费国产精品1| 色悠悠国产精品| 欧美精品久久久久久久久久| 亚洲精品国产综合区久久久久久久| 欧美一级高清免费播放| 亚洲女人天堂视频| 国产suv精品一区二区三区88区| 亚洲欧美日韩国产中文专区| 91精品在线一区| 久久69精品久久久久久国产越南| 人人爽久久涩噜噜噜网站| 国模吧一区二区三区| 欧美激情欧美激情在线五月| 国产一区二区三区网站| 国产精品一区=区| 亚洲精品白浆高清久久久久久| 欧美激情免费视频| 欧美日韩一区二区免费在线观看| 色小说视频一区| 日韩av在线免费观看一区| 91精品国产91久久| 欧美大胆在线视频| 久久国产精品久久久久久| 成人信息集中地欧美| 日本中文字幕成人| 国产成人精品优优av| 最近2019年好看中文字幕视频| 91久久国产婷婷一区二区| 欧美视频在线观看免费| 欧美日韩亚洲一区二| 欧美精品激情视频| 久久久综合av| 亚洲午夜精品久久久久久久久久久久| 日本道色综合久久影院| 国产午夜精品视频免费不卡69堂| 亚洲护士老师的毛茸茸最新章节| 欧美极品少妇xxxxx| 欧美性猛交xxxx免费看漫画| 欧美黄色免费网站| 日韩欧美福利视频| 国产精品一区二区3区| 亚洲国产精品久久久久久| 成人免费高清完整版在线观看| 粗暴蹂躏中文一区二区三区| 精品福利樱桃av导航| 国产成人aa精品一区在线播放| 亚洲人成网在线播放| 国内精品视频在线| 国产精品自拍网| 国产精品一区=区| 亚洲xxxx在线| 一本大道亚洲视频| 亚洲第一区中文99精品| 亚洲精品综合久久中文字幕| 美女性感视频久久久| 91精品中国老女人| 亚洲www视频| 激情懂色av一区av二区av| 日韩精品免费一线在线观看| 午夜精品久久久久久久99黑人| 国产日韩在线精品av|