鍍金池/ 問答/ 數(shù)據(jù)庫問答
選擇 回答

clipboard.png

如果你有興趣讀標準可以看看 https://xhr.spec.whatwg.org/

無標題 回答

在Contains前面輸出

Console.WriteLine(string.join(" ", dt.Columns))
Console.WriteLine(field.Trim())
有你在 回答

關于{dbstats: 1}意思:

  • 查詢條件是{dbstats: 1}({"query": {"dbstats": 1}})
  • 庫名是bar({ns: 'bar'})
  • 執(zhí)行的是command操作({op: 'command'})

因此執(zhí)行的語句是:

db.runCommand({dbstats: 1});

它實際上就是db.stats()方法的內部操作:

rs0:PRIMARY> db.stats
function (scale) {
    return this.runCommand({dbstats: 1, scale: scale});
}

mongos> sh.status()
databases:
    {  "_id" : "foo",  "primary" : "shard1",  "partitioned" : false }
    {  "_id" : "bar",  "primary" : "shard0",  "partitioned" : false }

這個輸出的意思是現(xiàn)在有兩個集合,foo/bar,它們都沒有分片({"partitioned" : false}),因為沒有分片,所以實際承載它們的只是一個分片。分別們于shard1/shard0上({"primary" : "shard1"}/{"primary" : "shard0"}),不是你理解的統(tǒng)計另外一個shard中的庫。再者,這個命令是從mongos上執(zhí)行的,mongos本來就連接著所有的分片,也不存在所謂統(tǒng)計“另外一個shard”。


最后執(zhí)行時間太長的問題,確實db.stats()不應該執(zhí)行這么久。這個問題可能跟特定版本的bug有關系,或者跟你的環(huán)境有一些聯(lián)系,需要具體分析日志。建議去jira.mongodb.org開ticket詢問情況。

近義詞 回答

數(shù)據(jù)庫存儲引擎使用的不對 要使用innodb

熟稔 回答

《MYSQL內核:INNODB存儲引擎》和《高性能MySQL》都有相關內容

這幾篇文章或許也能幫到你

[Mysql]——通過例子理解事務的4種隔離級別:
https://www.cnblogs.com/snsdz...

數(shù)據(jù)庫并發(fā)的五個問題以及四級封鎖協(xié)議與事務隔離的四個級別
http://blog.csdn.net/zhangzey...

毀與悔 回答

問題解決了, 在reducer中請求時返回就是NULL,算是自己坑了自己,
`function Requesting(state) {

return immutable.fromJS(state).merge({
    isRequesting: true,
    data: null,
    error: null
}).toJS();

}`
data:null 修改成data:state.data 就可以正確返回數(shù)據(jù)

喜歡你 回答

找到系統(tǒng)的cmd,右鍵 > “以管理員身份運行”

北城荒 回答

用concat_ws便于使用參數(shù)化sql語句, 可以避免sql注入, 更適用于列表

SELECT * FROM db WHERE keyword REGEXP concat_ws("|",
"金融",
"企業(yè)",
"其他");
孤慣 回答

感覺你現(xiàn)在做的是 藍圖 的形式。
先確定一下,你的兩個項目里的編譯器位置是否是同一個,如果是同一個,那么你就得設置藍圖。

憶往昔 回答

not exists效率本來就不高啊...

暫時先不考慮數(shù)據(jù)庫自動進行的編譯優(yōu)化這點,假設兩個實現(xiàn)用最樸素的實現(xiàn)方式

not exists本質上就是循環(huán)執(zhí)行doctor數(shù)據(jù)量次數(shù)的select 1 xxx語句,篩選出執(zhí)行查詢沒有結果的數(shù)據(jù),在這里就是30w或者20w次的select,即便都有索引select起來很快也架不住循環(huán)次數(shù)多啊

not in一般是先把in里的語句查出來,然后對結果和doctor做一個join關聯(lián)出匹配的上(in)或者匹配不上(not in)的數(shù)據(jù),就算沒有優(yōu)化查詢次數(shù)也依然比not exists少很多

而且如果not in的子查詢有建索引,還可以直接自動優(yōu)化成一個join語句做兩張表的關聯(lián)以進行索引之間的對比,也不用先把select子查詢計算出來再對比,類似
select count(*) from docker d,doctor_intro di where d.did = di.did and d.did is not null and di.did is null(sql隨便寫的,也沒實際執(zhí)行,可能是錯誤的,大概可以理解意思就行)
這樣一來的話速度就更快了,因為執(zhí)行時可以直接對比索引文件里的數(shù)據(jù)是否關聯(lián)的上,把關聯(lián)不上的數(shù)量取出來就完成了,可以省略掉先查出 SELECT did FROM doctor_intro 這步了

具體上mysql我目前很少用,內部做了哪些優(yōu)化也不清楚,我上面說的是建立在沒有優(yōu)化的基礎上,實際上涉及到sql編譯優(yōu)化后問題就復雜了很多,我目前也是還沒學完屬于基本不懂的狀態(tài),這方面就不多說什么了

笨小蛋 回答

參照:Index Types Per Storage Engine, 這個存儲引擎有關系,InnoDB和MyISAM只支持BTREE,因此默認均是BTree,MEMORY和HEAP支持Hash和Btree,如無明確聲明,則默認索引均是hash(包括主鍵)。

心夠野 回答

用遞歸啊 遞歸啊 遞歸

尕筱澄 回答

用 $inc 去加減. 不要在 function 里面操作.

官方文檔

眼雜 回答

表KEY_COLUMN_USAGE在information_schema庫里,要指定庫名才能獲取得到。

SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA='表對應的庫名' AND REFERENCED_TABLE_NAME='DC_CommodityItem' AND REFERENCED_COLUMN_NAME='CommodityItemID';

獲取得到數(shù)據(jù)就是有包含外鍵

大濕胸 回答

參考文檔serverStatus,對每個輸出結果項都有詳細說明。mappedmappedWithJournal只針對MMAPv1引擎有效

Only for the MMAPv1 storage engine.

3.2以后默認的存儲引擎是WiredTiger,所以這兩個值一直為0。
至于映射方式,MMAPv1使用的就是Linux操作系統(tǒng)的內存映射,篇幅所限沒法在這里解釋,不過網上已經有很多相關的資料。

痞性 回答

field1做索引,常用的數(shù)據(jù)做Redis緩存。