我有一個非常簡單的表格的MyISAM VS InnoDB的一個非常大的表
CREATE TABLE IF NOT EXISTS `largecache` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`tooltip` varchar(255) NOT NULL,
`name` varchar(100) NOT NULL,
`attributes` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tooltip` (`tooltip`)
) ENGINE=InnoDB
擁有約8萬個條目,用於幾乎全部用於讀取。我試圖確保我儘可能快地訪問數據。我目前使用InnoDB,是否值得切換到MyISAM?我唯一關心的是讀取性能。還有其他的建議,我可以用來加快,因爲數據庫讀取幾乎是我的應用程序中唯一的瓶頸。
我正在使用MySQL客戶端版本:5.1.47
謝謝。
我使用的是PHP,而且我根據工具提示字段的精確匹配查詢。 它被託管在一個共享的VPS上,有1個ram,任何對mysql的調整我都可以嘗試,但我知道mysql調整是一個非常複雜的問題。
例子查詢:
select * from largecache where `tooltip` = "Cm8IuIyq9QMSBwgEFS0iGWAd30SUNR2EHJ0nHYYCY-odxZ6okR0pEnPgHWzQbvIiCwgBFXZCAwAYCCAiMAk4_gNAAEgPUBBg_gNqJQoMCAAQvKHZ5oCAgIA6EhUIrcC1xggSBwgEFUn1i18wCTgAQAEY2ojJgQxQAlgA"
我已經安裝了APC,但不是memcached的
沒有詳細信息,更有效的答案是「遷移到SSD併爲緩衝區安裝64GB內存」 – zerkms
在細節方面仍然沒有任何用處。你執行什麼樣的查詢?是否有可能將結果緩存在memcached中?在所有8Gb的數據中 - 什麼是你經常選擇和罕見的分配? – zerkms
我試着添加一些更多的細節,如果有什麼具體的東西會有用的讓我現在。 – Rob