mysql explain命令詳解

mysql explain命令詳解

一.語法

explain < table_name >

例如: explain select * from t3 where id=3952602;

二.explain輸出解釋

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

1.id

我的理解是SQL執(zhí)行的順利的標(biāo)識,SQL從大到小的執(zhí)行.
例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
|  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | <derived3> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  3 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
很顯然這條SQL是從里向外的執(zhí)行,就是從id=3 向上執(zhí)行.

2. select_type

就是select類型,可以有以下幾種
(1) SIMPLE
簡單SELECT(不使用UNION或子查詢等) 例如:
mysql> explain select * from t3 where id=3952602;
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
|  1 | SIMPLE      | t3    | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
(2). PRIMARY
我的理解是最外層的select.例如:
mysql> explain select * from (select * from t3 where id=3952602) a ;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
|  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
(3).UNION
UNION中的第二個或后面的SELECT語句.例如
mysql> explain select * from t3 where id=3952602 union all select * from t3 ;
+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type  | table      | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
|  1 | PRIMARY      | t3         | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
|  2 | UNION        | t3         | ALL   | NULL              | NULL    | NULL    | NULL  | 1000 |       |
|NULL | UNION RESULT | <union1,2> | ALL   | NULL              | NULL    | NULL    | NULL  | NULL |       |
+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
(4).DEPENDENT UNION
UNION中的第二個或后面的SELECT語句侦厚,取決于外面的查詢
mysql> explain select * from t3 where id in (select id from t3 where id=3952602 union all select id from t3)  ;
+----+--------------------+------------+--------+-------------------+---------+---------+-------+------+--------------------------+
| id | select_type        | table      | type   | possible_keys     | key     | key_len | ref   | rows | Extra                    |
+----+--------------------+------------+--------+-------------------+---------+---------+-------+------+--------------------------+
|  1 | PRIMARY            | t3         | ALL    | NULL              | NULL    | NULL    | NULL  | 1000 | Using where              |
|  2 | DEPENDENT SUBQUERY | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 | Using index              |
|  3 | DEPENDENT UNION    | t3         | eq_ref | PRIMARY,idx_t3_id | PRIMARY | 4       | func  |    1 | Using where; Using index |
|NULL | UNION RESULT       | <union2,3> | ALL    | NULL              | NULL    | NULL    | NULL  | NULL |                          |
+----+--------------------+------------+--------+-------------------+---------+---------+-------+------+--------------------------+
(4).UNION RESULT
UNION的結(jié)果办斑。
mysql> explain select * from t3 where id=3952602 union all select * from t3 ;
+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type  | table      | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
|  1 | PRIMARY      | t3         | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
|  2 | UNION        | t3         | ALL   | NULL              | NULL    | NULL    | NULL  | 1000 |       |
|NULL | UNION RESULT | <union1,2> | ALL   | NULL              | NULL    | NULL    | NULL  | NULL |       |
+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
(5).SUBQUERY
子查詢中的第一個SELECT.
mysql> explain select * from t3 where id = (select id from t3 where id=3952602 )  ;
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------------+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra       |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------------+
|  1 | PRIMARY     | t3    | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |             |
|  2 | SUBQUERY    | t3    | const | PRIMARY,idx_t3_id | PRIMARY | 4       |       |    1 | Using index |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------------+
(6). DEPENDENT SUBQUERY
子查詢中的第一個SELECT殴玛,取決于外面的查詢
mysql> explain select id from t3 where id in (select id from t3 where id=3952602 )  ;
+----+--------------------+-------+-------+-------------------+---------+---------+-------+------+--------------------------+
| id | select_type        | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra                    |
+----+--------------------+-------+-------+-------------------+---------+---------+-------+------+--------------------------+
|  1 | PRIMARY            | t3    | index | NULL              | PRIMARY | 4       | NULL  | 1000 | Using where; Using index |
|  2 | DEPENDENT SUBQUERY | t3    | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 | Using index              |
+----+--------------------+-------+-------+-------------------+---------+---------+-------+------+--------------------------+
(7).DERIVED
派生表的SELECT(FROM子句的子查詢)

mysql> explain select * from (select * from t3 where id=3952602) a ;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
|  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+

3.table

顯示這一行的數(shù)據(jù)是關(guān)于哪張表的.
有時不是真實(shí)的表名字,看到的是derivedx(x是個數(shù)字,我的理解是第幾步執(zhí)行的結(jié)果)
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
|  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | <derived3> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  3 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+

4.type

這列很重要,顯示了連接使用了哪種類別,有無使用索引.
從最好到最差的連接類型為const、eq_reg寄摆、ref括享、range愉粤、indexhe和ALL
(1).system
這是const聯(lián)接類型的一個特例杀迹。表僅有一行滿足條件.如下(t3表上的id是 primary key)

mysql> explain select * from (select * from t3 where id=3952602) a ;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
|  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
(2).const
表最多有一個匹配行,它將在查詢開始時被讀取校镐。因?yàn)閮H有一行亿扁,在這行的列值可被優(yōu)化器剩余部分認(rèn)為是常數(shù)。const表很快鸟廓,因?yàn)樗鼈冎蛔x取一次从祝!
const用于用常數(shù)值比較PRIMARY KEY或UNIQUE索引的所有部分時。在下面的查詢中引谜,tbl_name可以用于const表:
SELECT * from tbl_name WHERE primary_key=1牍陌;
SELECT * from tbl_name WHERE primary_key_part1=1和 primary_key_part2=2;
例如:
mysql> explain select * from t3 where id=3952602;
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
|  1 | SIMPLE      | t3    | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
(3). eq_ref
對于每個來自于前面的表的行組合员咽,從該表中讀取一行毒涧。這可能是最好的聯(lián)接類型,除了const類型贝室。它用在一個索引的所有部分被聯(lián)接使用并且索引是UNIQUE或PRIMARY KEY契讲。
eq_ref可以用于使用= 操作符比較的帶索引的列。比較值可以為常量或一個使用在該表前面所讀取的表的列的表達(dá)式滑频。
在下面的例子中捡偏,MySQL可以使用eq_ref聯(lián)接來處理ref_tables:
SELECT * FROM ref_table,other_table
  WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
  WHERE ref_table.key_column_part1=other_table.column
    AND ref_table.key_column_part2=1;
例如
mysql> create unique index  idx_t3_id on t3(id) ;
Query OK, 1000 rows affected (0.03 sec)
Records: 1000  Duplicates: 0  Warnings: 0

mysql> explain select * from t3,t4 where t3.id=t4.accountid;
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
| id | select_type | table | type   | possible_keys     | key       | key_len | ref                  | rows | Extra |
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
|  1 | SIMPLE      | t4    | ALL    | NULL              | NULL      | NULL    | NULL                 | 1000 |       |
|  1 | SIMPLE      | t3    | eq_ref | PRIMARY,idx_t3_id | idx_t3_id | 4       | dbatest.t4.accountid |    1 |       |
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
(4).ref
對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取峡迷。如果聯(lián)接只使用鍵的最左邊的前綴银伟,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個行的話)绘搞,則使用ref彤避。如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯的看杭。
ref可以用于使用=或<=>操作符的帶索引的列。
在下面的例子中挟伙,MySQL可以使用ref聯(lián)接來處理ref_tables:
SELECT * FROM ref_table WHERE key_column=expr;

SELECT * FROM ref_table,other_table
  WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
  WHERE ref_table.key_column_part1=other_table.column
    AND ref_table.key_column_part2=1;
例如:
mysql> drop index idx_t3_id on t3;
Query OK, 1000 rows affected (0.03 sec)
Records: 1000  Duplicates: 0  Warnings: 0

mysql> create index idx_t3_id on t3(id) ;
Query OK, 1000 rows affected (0.04 sec)
Records: 1000  Duplicates: 0  Warnings: 0

mysql> explain select * from t3,t4 where t3.id=t4.accountid;
+----+-------------+-------+------+-------------------+-----------+---------+----------------------+------+-------+
| id | select_type | table | type | possible_keys     | key       | key_len | ref                  | rows | Extra |
+----+-------------+-------+------+-------------------+-----------+---------+----------------------+------+-------+
|  1 | SIMPLE      | t4    | ALL  | NULL              | NULL      | NULL    | NULL                 | 1000 |       |
|  1 | SIMPLE      | t3    | ref  | PRIMARY,idx_t3_id | idx_t3_id | 4       | dbatest.t4.accountid |    1 |       |
+----+-------------+-------+------+-------------------+-----------+---------+----------------------+------+-------+
2 rows in set (0.00 sec)
(5). ref_or_null
該聯(lián)接類型如同ref楼雹,但是添加了MySQL可以專門搜索包含NULL值的行模孩。在解決子查詢中經(jīng)常使用該聯(lián)接類型的優(yōu)化。
在下面的例子中贮缅,MySQL可以使用ref_or_null聯(lián)接來處理ref_tables:
SELECT * FROM ref_table
WHERE key_column=expr OR key_column IS NULL;
(6). index_merge
該聯(lián)接類型表示使用了索引合并優(yōu)化方法榨咐。在這種情況下,key列包含了使用的索引的清單谴供,key_len包含了使用的索引的最長的關(guān)鍵元素块茁。
例如:
mysql> explain select * from t4 where id=3952602 or accountid=31754306 ;
+----+-------------+-------+-------------+----------------------------+----------------------------+---------+------+------+------------------------------------------------------+
| id | select_type | table | type        | possible_keys              | key                        | key_len | ref  | rows | Extra                                                |
+----+-------------+-------+-------------+----------------------------+----------------------------+---------+------+------+------------------------------------------------------+
|  1 | SIMPLE      | t4    | index_merge | idx_t4_id,idx_t4_accountid | idx_t4_id,idx_t4_accountid | 4,4     | NULL |    2 | Using union(idx_t4_id,idx_t4_accountid); Using where |
+----+-------------+-------+-------------+----------------------------+----------------------------+---------+------+------+------------------------------------------------------+
1 row in set (0.00 sec)
(7). unique_subquery
該類型替換了下面形式的IN子查詢的ref:
value IN (SELECT primary_key FROM single_table WHERE some_expr)
unique_subquery是一個索引查找函數(shù),可以完全替換子查詢桂肌,效率更高。
(8).index_subquery
該聯(lián)接類型類似于unique_subquery〗∨溃可以替換IN子查詢砂竖,但只適合下列形式的子查詢中的非唯一索引:
value IN (SELECT key_column FROM single_table WHERE some_expr)
(9).range
只檢索給定范圍的行,使用一個索引來選擇行谭跨。key列顯示使用了哪個索引干厚。key_len包含所使用索引的最長關(guān)鍵元素。在該類型中ref列為NULL螃宙。
當(dāng)使用=蛮瞄、<>、>谆扎、>=挂捅、<、<=燕酷、IS NULL籍凝、<=>、BETWEEN或者IN操作符苗缩,用常量比較關(guān)鍵字列時饵蒂,可以使用range
mysql> explain select * from t3 where id=3952602 or id=3952603 ;
+----+-------------+-------+-------+-------------------+-----------+---------+------+------+-------------+
| id | select_type | table | type  | possible_keys     | key       | key_len | ref  | rows | Extra       |
+----+-------------+-------+-------+-------------------+-----------+---------+------+------+-------------+
|  1 | SIMPLE      | t3    | range | PRIMARY,idx_t3_id | idx_t3_id | 4       | NULL |    2 | Using where |
+----+-------------+-------+-------+-------------------+-----------+---------+------+------+-------------+
1 row in set (0.02 sec)
(10).index
聯(lián)接類型與ALL相同,除了只有索引樹被掃描酱讶。這通常比ALL快退盯,因?yàn)樗饕募ǔ1葦?shù)據(jù)文件小。
當(dāng)查詢只使用作為單索引一部分的列時泻肯,MySQL可以使用該聯(lián)接類型渊迁。
(11). ALL
對于每個來自于先前的表的行組合,進(jìn)行完整的表掃描灶挟。如果表是第一個沒標(biāo)記const的表琉朽,這通常不好,并且通常在它情況下很差稚铣。通诚淙可以增加更多的索引而不要使用ALL墅垮,使得行能基于前面的表中的常數(shù)值或列值被檢索出。

5.possible_keys

possible_keys列指出MySQL能使用哪個索引在該表中找到行耕漱。注意算色,該列完全獨(dú)立于EXPLAIN輸出所示的表的次序。這意味著在possible_keys中的某些鍵實(shí)際上不能按生成的表次序使用灾梦。
如果該列是NULL,則沒有相關(guān)的索引妓笙。在這種情況下若河,可以通過檢查WHERE子句看是否它引用某些列或適合索引的列來提高你的查詢性能。如果是這樣给郊,創(chuàng)造一個適當(dāng)?shù)乃饕⑶以俅斡肊XPLAIN檢查查詢

6. key

key列顯示MySQL實(shí)際決定使用的鍵(索引)牡肉。如果沒有選擇索引,鍵是NULL淆九。要想強(qiáng)制MySQL使用或忽視possible_keys列中的索引统锤,在查詢中使用FORCE INDEX、USE INDEX或者IGNORE INDEX炭庙。

7.key_len

key_len列顯示MySQL決定使用的鍵長度饲窿。如果鍵是NULL,則長度為NULL焕蹄。
使用的索引的長度逾雄。在不損失精確性的情況下,長度越短越好

8. ref

ref列顯示使用哪個列或常數(shù)與key一起從表中選擇行腻脏。

9. rows

rows列顯示MySQL認(rèn)為它執(zhí)行查詢時必須檢查的行數(shù)鸦泳。

10. Extra

該列包含MySQL解決查詢的詳細(xì)信息,下面詳細(xì).
(1).Distinct
一旦MYSQL找到了與行相聯(lián)合匹配的行,就不再搜索了
(2).Not exists
MYSQL優(yōu)化了LEFT JOIN永品,一旦它找到了匹配LEFT JOIN標(biāo)準(zhǔn)的行做鹰,
就不再搜索了
(3).Range checked for each
Record(index map:#)
沒有找到理想的索引,因此對于從前面表中來的每一個行組合鼎姐,MYSQL檢查使用哪個索引钾麸,并用它來從表中返回行。這是使用索引的最慢的連接之一
(4).Using filesort
看到這個的時候炕桨,查詢就需要優(yōu)化了饭尝。MYSQL需要進(jìn)行額外的步驟來發(fā)現(xiàn)如何對返回的行排序。它根據(jù)連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行
(5).Using index
列數(shù)據(jù)是從僅僅使用了索引中的信息而沒有讀取實(shí)際的行動的表返回的献宫,這發(fā)生在對表的全部的請求列都是同一個索引的部分的時候
(6).Using temporary
看到這個的時候钥平,查詢需要優(yōu)化了。這里姊途,MYSQL需要創(chuàng)建一個臨時表來存儲結(jié)果涉瘾,這通常發(fā)生在對不同的列集進(jìn)行ORDER BY上奈惑,而不是GROUP BY上
(7).Using where
使用了WHERE從句來限制哪些行將與下一張表匹配或者是返回給用戶。如果不想返回表中的全部行睡汹,并且連接類型ALL或index,這就會發(fā)生寂殉,或者是查詢有問題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末囚巴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子友扰,更是在濱河造成了極大的恐慌彤叉,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件村怪,死亡現(xiàn)場離奇詭異秽浇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)甚负,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門柬焕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梭域,你說我怎么就攤上這事斑举。” “怎么了病涨?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵富玷,是天一觀的道長。 經(jīng)常有香客問我既穆,道長赎懦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任幻工,我火速辦了婚禮励两,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘会钝。我一直安慰自己伐蒋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布迁酸。 她就那樣靜靜地躺著先鱼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奸鬓。 梳的紋絲不亂的頭發(fā)上焙畔,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機(jī)與錄音串远,去河邊找鬼宏多。 笑死儿惫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伸但。 我是一名探鬼主播肾请,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼更胖!你這毒婦竟也來了铛铁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤却妨,失蹤者是張志新(化名)和其女友劉穎饵逐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彪标,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倍权,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捞烟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薄声。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖题画,靈堂內(nèi)的尸體忽然破棺而出奸柬,到底是詐尸還是另有隱情,我是刑警寧澤婴程,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布廓奕,位于F島的核電站,受9級特大地震影響档叔,放射性物質(zhì)發(fā)生泄漏桌粉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一衙四、第九天 我趴在偏房一處隱蔽的房頂上張望铃肯。 院中可真熱鬧,春花似錦传蹈、人聲如沸押逼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挑格。三九已至,卻和暖如春沾歪,著一層夾襖步出監(jiān)牢的瞬間漂彤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挫望,地道東北人立润。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像媳板,于是被迫代替她去往敵國和親桑腮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容