在我的數據庫中,我有超過1000本書和平均約100頁的書(可能更多或更少)。我在想:如何存儲數據,如書籍?
是否有可能每本書存儲在一個單一的領域?像:
INSERT INTO bookContent VALUE("book contents from first page to end...");
其中bookContent
將是整本書的內容。
- 如果將它們存儲到MySQL中不是個好主意,那麼最好的辦法是什麼?
在我的數據庫中,我有超過1000本書和平均約100頁的書(可能更多或更少)。我在想:如何存儲數據,如書籍?
是否有可能每本書存儲在一個單一的領域?像:
INSERT INTO bookContent VALUE("book contents from first page to end...");
其中bookContent
將是整本書的內容。
總之是的,但因爲一個最大長度爲大多數類型的數據,您將需要使用二進制數據類型,如斑點,其最大是如此之高,你將永遠無法達到的。(最有可能)
您可能必須使用mysql_real_escape_string()
之類的函數來處理特殊字符。我正在存儲歌詞,必須避開字符串以防止出現錯誤。
in perl $connect->quote("book contents from first page to end...");
嘗試將值插入表中之前。
我不確定插入整本書本身是明智的。至少應該有一個獨特的book#字段,如果你願意,你可以在另一個表中添加作者,標題,出版商等。如果你在表格或其他表格中沒有其他字段,你將不會能夠輕鬆查詢某些書籍。
你想看所有的福爾摩斯書籍....它不會容易。該數據庫將運行速度非常慢,因爲它必須搜索每本書的內容「福爾摩斯」。
現在,如果你的表有作者,出版商,標題和等再
select * from book where author="Sir Aurthur Conan Doyle";
select * from book where title="Sherlock Holmes";
這些查詢將運行的數量級比這更快的查詢。
SELECT * FROM book WHERE book LIKE '%Sherlock Holmes%';
根據實際尺寸每本書以千或兆字節的上述查詢可達到99%,有你的CPU了一段時間。
有關數據類型大小,請參閱http://dev.mysql.com/doc/refman/5.6/en/string-type-overview.html 。
我們需要更多的信息來了解你想要做什麼來提供明智的答案。 – 2012-03-05 00:35:21
究竟是什麼「MySQL單元格」? – 2012-03-05 00:36:10
根據他發佈的查詢,我猜'單元格'意味着一行。 – Corubba 2012-03-05 00:51:17