第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL和NoSQL:幫助我選擇正確的

MySQL和NoSQL:幫助我選擇正確的

MM們 2019-06-20 17:20:39
MySQL和NoSQL:幫助我選擇正確的有一個很大的數(shù)據(jù)庫,1,000,000,000行,稱為線程(這些線程實際上存在,我不會僅僅因為我喜歡它就讓事情變得更困難)。線程中只有幾個東西,以加快速度:(int id、String散列、int應答計數(shù)、int dateline(時間戳)、int forumid、String title)查詢:select * from thread where forumid = 100 and replycount > 1 order by dateline desc limit 10000, 100因為有1G的記錄,這是一個很慢的查詢。所以我想,讓我們把這1G的記錄分成幾張表格,就像我擁有的一樣多的論壇(類別)!差不多完美了。有很多表,我的搜索記錄較少,而且速度更快。查詢現(xiàn)在變成:select * from thread_{forum_id} where replycount > 1 order by dateline desc limit 10000, 100這真的更快,99%的論壇(類別),因為其中大多數(shù)只有少數(shù)幾個主題(100k-100萬)。然而,由于有一些記錄大約有1000萬條,所以有些查詢?nèi)匀灰聛?0.1/2秒),對于我的應用程序來說太慢了!我已經(jīng)在用索引了!).我不知道如何使用MySQL來改進它。有辦法嗎?對于這個項目,我將使用10臺服務器(12 GB內(nèi)存,4x7200 rpm硬盤上的軟件RAID 10,四核)這樣做的目的是簡單地將數(shù)據(jù)庫拆分到服務器之間,但是由于上面解釋的問題,這個問題仍然是不應該存在的。如果我在這10臺服務器上安裝了Cassandra(假設我找到了使其正常工作的時間),那么是否應該提高性能呢?我該怎么辦?在多臺機器上繼續(xù)使用帶有分布式數(shù)據(jù)庫的MySQL,還是構(gòu)建Cassandra集群?我被要求發(fā)布什么是索引,如下所示:mysql> show index in thread;PRIMARY id forumid dateline replycount選擇“解釋”:mysql> explain SELECT * FROM thread WHERE forumid = 655 AND visible = 1 AND open <> 10 ORDER BY dateline ASC LIMIT 268000, 250;+----+-------------+--------+------+---------------+---------+---------+-------------+--------+-----------------------------+| id | select_type | table  | type | possible_keys | key     | key_len | ref         | rows   | Extra                       |+----+-------------+--------+------+---------------+---------+---------+-------------+--------+-----------------------------+|  1 | SIMPLE      | thread | ref  | forumid       | forumid | 4       | const,const | 221575 | Using where; Using filesort | +----+-------------+--------+------+---------------+---------+---------+-------------+--------+-----------------------------+
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經(jīng)驗 獲得超4個贊

有一部分問題與NoSQL或MySQL選項有關(guān)。事實上,這是隱藏在這里的一件基本事情。SQL語言對人來說很容易寫,對計算機來說也很難讀。在大容量數(shù)據(jù)庫中,我建議避免SQL后端,因為這需要額外的步驟命令解析。我已經(jīng)做了大量的基準測試,在某些情況下,SQL解析器是最慢的。你對此無能為力。好的,您可以使用預解析語句并訪問它們。

順便說一句,它并不廣為人知,但MySQL是從NoSQL數(shù)據(jù)庫中發(fā)展出來的。MySQLDavid和Monty的作者工作的公司是數(shù)據(jù)倉庫公司,他們常常不得不為不尋常的任務編寫自定義解決方案。這導致了大量用于手工編寫數(shù)據(jù)庫函數(shù)的自制C庫,而Oracle和其他庫的性能很差。SQL于1996年被添加到這個有近20年歷史的動物園中,以求取樂。你知道之后發(fā)生了什么。

實際上,使用MySQL可以避免SQL開銷。但通常情況下,SQL解析不是最慢的部分,而是很好的了解。要測試解析器開銷,只需為“SELECT 1”進行基準測試;)。


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關(guān)注
  • 848 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號