2016-03-04 68 views
0

我需要在ibdata1或ib_logfile *中查找一些bigint格式的數據。如何搜索ibdata1中的bigint列值?

我該如何grep呢?

+0

爲什麼你不簡單地恢復表? –

+0

@ N.B。我需要找出一些數據的插入日期。 – palindrom

+0

你真的不明白我的問題的重點,對吧? –

回答

1

Bgrep將是一個工具。

考慮到InnoDB以非常規方式存儲整數。如果類型爲SIGNED,則最高位標記一個符號。如果該值爲正,則設置1。

例如,如果一個字段在InnoDB表空間中被聲明爲BIGINT(默認爲有符號)並且其值爲38,則它將被存儲爲0x8000000000000026

如果該字段聲明爲BIGINT UNSIGNED則38值將被存儲爲0x0000000000000026

+0

你確定嗎? '已簽名'的每種編碼都聽說過商店'+'爲'0'。 –

+0

是的,我確定。這是不尋常的方式。帽子爲什麼我加了筆記。但這不是唯一的情況。在<5.6 DATETIME的最高位也被設置 – akuzminsky

+0

認爲5.6之前'DATETIME'使用了「壓縮十進制」。 –