3
我試圖爲僞數組變量創建一個表。這看起來像從mysql查詢中獲取當前會話/進程ID
CREATE TABLE IF NOT EXISTS `MyArray`.`ArrayTable` (
`ID` INT UNSIGNED NOT NULL COMMENT 'Hash value of SessionID + ArrayName' ,
`SessionID` INT UNSIGNED NOT NULL ,
`ArrayName` CHAR(26) NOT NULL
COMMENT '32 digit char - 6 digit longest process id (assumtion)' ,
`Index` INT UNSIGNED NOT NULL ,
`Value` TEXT NOT NULL ,
PRIMARY KEY (`ID`, `SessionID`))
ENGINE = MyISAM;
表尚未正常化,「希望這將使其更簡單一點理解:)
爲了避免客戶之間collission,應該有客戶端會話之間的區別。出於這個原因,我認爲需要知道當前會話/進程ID(就像「SHOW PROCESSLIST」),但真的需要知道在哪個進程查詢?
你有沒有其他識別信息可以使用?客戶的IP,用戶名等,實際上是識別客戶端,而不是一些僞隨機性?會話/進程ID可能會隨着時間的推移重複 – lexu 2010-04-13 05:25:27
從一個客戶端IP和一個用戶名可能會創建許多連接到服務器,所以我不會的事情它會工作。但是,是的,你正在指出我錯過的一些內容,「會話/進程ID可能會隨着時間的推移而重複」。現在我正在考慮將創建時間添加爲變量。 – 2010-04-14 04:06:35
順便說一下,mysqld重新啓動後,線程ID將被重置。只要服務器正在運行,這些ID就不會被重用。 – newtover 2010-04-14 04:27:14