mysql - 大部分數(shù)據(jù)沒有行溢出的text字段是否需要拆表
問題描述
比如一個論壇系統(tǒng)的回帖表,多數(shù)情況下這個回帖的內(nèi)容都是簡短的,只有少部分內(nèi)容長。
而在顯示中這個內(nèi)容字段是常用的,還有必要把這個內(nèi)容字段單獨拆出來嗎?
<?phpnamespace KooguaModelEntity;class Reply extends EntityBase{ const STATUS_PENDING = 1; // 待定 const STATUS_APPROVED = 2; // 審通 const STATUS_REJECTED = 3; // 審拒 const STATUS_DELETED = 4; // 刪除 /** * 主鍵編號 * @var integer */ public $id;/** * 回復內(nèi)容 * @var string */ public $content;/** * 提及用戶 * @var string */ public $mentions;/** * 用戶編號 * @var integer */ public $userId;/** * 主題編號 * @var integer */ public $topicId;/** * 版塊編號 * @var integer */ public $forumId;/** * 置頂標識 * @var integer */ public $sticked;/** * 狀態(tài)標識 * @var integer */ public $status;/** * 評論計數(shù) * @var integer */ public $commentCount;/** * 關(guān)注計數(shù) * @var integer */ public $watchCount;/** * 收藏計數(shù) * @var integer */ public $favoriteCount;/** * 贊同計數(shù) * @var integer */ public $agreeCount; /** * 反對計數(shù) * @var integer */ public $opposeCount;/** * 舉報計數(shù) * @var integer */ public $reportCount;/** * 創(chuàng)建時間 * @var integer */ public $createTime; /** * 更新時間 * @var integer */ public $updateTime; public function getSource() {return ’Reply’; } public function beforeCreate() {$this->createTime = time(); } }
問題解答
回答1:個人感覺沒必要,從語義上來講內(nèi)容屬于回帖表比較關(guān)鍵的數(shù)據(jù),另外分出來的話,每次需要連表查或者分兩次差太麻煩(而且這種基礎(chǔ)數(shù)據(jù),幾乎是100%需要的,如果是額外信息到可以考慮放出來)。
另外如果表太大的話,可以考慮分庫分表。
回答2:你可以先把你的表結(jié)構(gòu),粘貼出來。研究研究,我們在討論討論
回答3:規(guī)定回帖字數(shù),沒有必要拆表。
相關(guān)文章:
1. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現(xiàn)存在即更新應(yīng)該使用哪個標簽?2. mysql - 數(shù)據(jù)庫建字段,默認值空和empty string有什么區(qū)別 1103. mysql - 這種分級一對多,且分級不平衡的模型該怎么設(shè)計表?4. Navicat for mysql 中以json格式儲存的數(shù)據(jù)存在大量反斜杠,如何去除?5. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf6. java - 數(shù)據(jù)庫查詢多表7. 新人求教MySQL關(guān)于判斷后拼接條件進行查詢的sql語句8. mysql - 千萬數(shù)據(jù) 分頁,當偏移量 原來越大時,怎么優(yōu)化速度9. MySQL FOREIGN KEY 約束報錯10. mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決
