我正在研究一個允許用戶動態地向網絡表單添加問題的應用程序。我們使用MySQL作爲後端,我試圖找到存儲表單數據的最快,最有效的方式。MySQL文本字段和內存使用
以前,我們將數據存儲在每個表單部分的單獨表中。這些列是根據一個系統命名的,它允許我們將動態問題映射到其存儲位置。缺點是存儲映射系統設計的很糟糕,這使得用現有數據修改表單變成了一場噩夢。另外,MySQL對每行內存的限制限制了每個部分可能有的問題數量。
因此,我正在尋找使用單個表格來包含所有表單數據。由於短文問題是允許的,我正在考慮使用Text或MediumText作爲實際數據的字段類型。但是,在運行查詢時,我擔心RAM的使用情況。當我爲數據運行查詢時,MySQL是否足夠聰明,只能分配字段中數據所需的內存(即使它是一個小整數),還是會分配爲MediumText字段允許的全部數量?
此外,有沒有更好的方式可以考慮存儲這樣的動態數據庫的數據?
艾米
我的印象是MyISAM比InnoDB快得多。 InnoDB是否提供全文搜索功能?如果速度可比,我寧願使用InnoDB,因爲它也支持外鍵。 – 2010-09-30 21:17:54
有與表引擎的不同之處。如果你可以正確地設計模式,你可以從InnoDB中獲得很好的性能。當然,這取決於你的規模以及你是如何限制I/O的。如果您使用InnoDB,則必須設置單獨的關鍵字索引,因爲它沒有全文索引。 – 2010-09-30 23:08:01