MySQL:簡單記錄performance_schema.threads中的3種執行緒ID各自的含義

gaopengtttt發表於2019-04-04

簡單記錄

如下線面3種ID到底什麼意思,這個問題我一直沒去看:

(root@localhost)[05:47:31] [performance_schema ;]> select THREAD_ID,PROCESSLIST_ID,THREAD_OS_ID from performance_schema.threads   ;
+-----------+----------------+--------------+| THREAD_ID | PROCESSLIST_ID | THREAD_OS_ID |+-----------+----------------+--------------+|         1 |           NULL |        17721 ||         2 |           NULL |        17728 ||         3 |           NULL |        17729 ||         4 |           NULL |        17730 ||         5 |           NULL |        17731 ||         6 |           NULL |        17732 ||         7 |           NULL |        17733 ||         8 |           NULL |        17734 ||         9 |           NULL |        17735 ||        10 |           NULL |        17736 ||        11 |           NULL |        17737 ||        12 |           NULL |        17738 ||        13 |           NULL |        17739 ||        15 |           NULL |        17743 ||        16 |           NULL |        17744 ||        17 |           NULL |        17745 ||        18 |           NULL |        17746 ||        19 |           NULL |        17747 ||        20 |           NULL |        17749 ||        21 |           NULL |        17748 ||        22 |           NULL |        17750 ||        23 |           NULL |        17751 ||        24 |           NULL |        17752 ||        25 |           NULL |        17763 ||        26 |              1 |        17764 ||        27 |              2 |        17969 ||        44 |             19 |        31424 |+-----------+----------------+--------------+
  • THREAD_ID:performance_schema裡面的一個計數器如下:
PFS_thread* create_thread(PFS_thread_class *klass, const void *identity,
                          ulonglong processlist_id){
  PFS_thread *pfs;
  pfs_dirty_state dirty_state;
  pfs= global_thread_container.allocate(& dirty_state);  if (pfs != NULL)
  {
    pfs->m_thread_internal_id=
      PFS_atomic::add_u64(&thread_internal_id_counter.m_u64, 1);
    pfs->m_parent_thread_internal_id= 0;
    pfs->m_processlist_id= static_cast<ulong>(processlist_id);
作者微信:gaopp_22389860

thread_internal_id_counter計數器一直增加。可以看到這是performance_schema內部使用的。

  • PROCESSLIST_ID

是傳入引數processlist_id,也就是我們平時show processlist出來的。一般MySQL層使用它。

  • THREAD_OS_ID

OS級別的執行緒ID,來自函式

 pfs->m_thread_os_id= my_thread_os_id();

記錄於此 以備後用。

作者微信:gaopp_22389860


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2640463/,如需轉載,請註明出處,否則將追究法律責任。

相關文章