-
# Query_time: 4.743248 Lock_time: 0.000053 Rows_sent: 0 Rows_examined: 0
-
SET timestamp=1515661062;
-
INSERT INTO orders (o_id, o_d_id, o_w_id, o_c_id, o_entry_d, o_ol_cnt, o_all_local) VALUES(3002, 4, 138, 2870, '2018-01-11 16:57:37', 7, 1);
-
-
# Query_time: 3.139345 Lock_time: 0.000102 Rows_sent: 1 Rows_examined: 3001
-
SET timestamp=1515661062;
-
SELECT o_id, o_entry_d, COALESCE(o_carrier_id,0) FROM orders WHERE o_w_id = 345 AND o_d_id = 8 AND o_c_id = 1069 AND o_id = (SELECT MAX(o_id) FROM orders WHERE o_w_id = 345 AND o_d_id = 8 AND o_c_id = 1069);
-
-
# Query_time: 4.433704 Lock_time: 0.000241 Rows_sent: 1 Rows_examined: 3002
-
SET timestamp=1515661062;
-
SELECT o_id, o_entry_d, COALESCE(o_carrier_id,0) FROM orders WHERE o_w_id = 408 AND o_d_id = 7 AND o_c_id = 760 AND o_id = (SELECT MAX(o_id) FROM orders WHERE o_w_id = 408 AND o_d_id = 7 AND o_c_id = 760);
-
-
# Query_time: 7.391263 Lock_time: 0.000151 Rows_sent: 1 Rows_examined: 3003
-
SET timestamp=1515661062;
-
SELECT o_id, o_entry_d, COALESCE(o_carrier_id,0) FROM orders WHERE o_w_id = 253 AND o_d_id = 4 AND o_c_id = 1272 AND o_id = (SELECT MAX(o_id) FROM orders WHERE o_w_id = 253 AND o_d_id = 4 AND o_c_id = 1272)
我们看到,这里面慢查询都是发生在表orders,有执行7秒的,有执行4秒的,3秒的,有insert语句。我把这些语句单独拿到
mysql中执行,执行非常快。打印出执行计划,我看到了所有的语句都走了索引,而且每个语句执行速度很快。这个会是什么原因呢?我猜测是并发线程多,有锁住情况。但是mysql的查询是非阻塞的,插入也是非阻塞的,这又是什么原因呢?先做个验证:使用256个并发线程连接,看看有什么表现。