鍍金池/ 問答/ 數(shù)據(jù)庫問答
掛念你 回答

兩個(gè)都是準(zhǔn)確的,你沒有考慮時(shí)區(qū)的問題。MongoDB存儲(chǔ)的是GMT0時(shí)間,MySQL給你的是服務(wù)器時(shí)區(qū)(中國(guó)區(qū)),也就是GMT+8。算一下正好差8小時(shí),都沒有錯(cuò)。

兔寶寶 回答

數(shù)據(jù)庫查詢時(shí)間粗略地可以分為:

  1. 建立網(wǎng)絡(luò)連接
  2. sql語句傳輸
  3. sql語句解析
  4. sql語句執(zhí)行
  5. 數(shù)據(jù)傳輸
  6. 客戶端數(shù)據(jù)處理等

這里(1)可能因使用連接池,使得時(shí)間不盡相同,取決于連接池的實(shí)現(xiàn)和參數(shù)設(shè)置, 可能某一次與其他次建立連接時(shí)間不一樣; (2)基本為定值, 但也有可能在客戶端進(jìn)行PreparedStatement緩存而不一致; (3)同(2), 數(shù)據(jù)庫會(huì)對(duì)解析進(jìn)行緩存, 第一次可能和第二次不一樣; (4)數(shù)據(jù)庫一會(huì)對(duì)執(zhí)行過的sql進(jìn)行短時(shí)間緩存; (5)取決于數(shù)據(jù)量和網(wǎng)速, 對(duì)于同樣的數(shù)據(jù)量變化不大; (6)取決于客戶端代碼, 但一般會(huì)小于ms級(jí).

這里還沒有考慮數(shù)據(jù)庫服務(wù)器端的配置和是否有主從及負(fù)載均衡的配置等等.

所以你測(cè)試的數(shù)據(jù)是變化的很正常不過了, 需要采集大量數(shù)據(jù),最好是與業(yè)務(wù)相似的使用場(chǎng)景才有價(jià)值.

陪我終 回答
Object.assign(target, ...sources)
The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.

Object.assign() 將多個(gè)sources對(duì)象中的可枚舉的自有屬性復(fù)制到target對(duì)象中,然后返回target對(duì)象

var userInfo={a:1};
var siginDay={b:1};
var mergeObj = Object.assign(siginDay,userInfo);
console.log(userInfo);//{a: 1}
console.log(siginDay);//{b: 1, a: 1}
console.log(mergeObj);//{b: 1, a: 1}
console.log("mergeObj===siginDay ==>"+(mergeObj===siginDay));//true

siginDay對(duì)象被改寫,包含原siginDay,userInfog合集,存在同名屬性時(shí),后面的覆蓋前面的

=============

補(bǔ)充什么是自有屬性,什么叫可枚舉
一個(gè)對(duì)象屬性如果是從原型中帶來的,那它叫繼承屬性;
一個(gè)對(duì)象屬性如果是不是從原型中帶來的,那它叫自有屬性;

一個(gè)對(duì)象屬性可以通過Object.defineProperty方式定義一個(gè)對(duì)象的屬性,可以設(shè)置屬性是否可枚舉,是否可配置,是否可寫等屬性.平常我們通過對(duì)象字面量的方式定義的對(duì)象屬性是可枚舉,可配置,非只讀的

var prototypeObj={
   pProp:"1111"
};

var descriptor = Object.create(prototypeObj);
//定義一個(gè)名為ownKey1的不可枚舉屬性
Object.defineProperty(descriptor, 'ownKey2', {
  enumerable: false,//不可枚舉
  configurable: false,//不可配置
  writable: true,//
  value: '2222'
});
//定義一個(gè)名為ownKey2的不可枚舉屬性
Object.defineProperty(descriptor, 'ownKey3', {
  enumerable: true,//不可枚舉
  configurable: false,//不可配置
  writable: true,//
  value: '33333'
});


var userInfo={a:1};
var mergeObj = Object.assign({},userInfo,descriptor);
console.log(userInfo);//{a: 1}
console.log(descriptor.pProp);//111 繼承的屬性能被訪問到
console.log(descriptor);
//只有可枚舉的,自有屬性能被復(fù)制到mergeObj
console.log(mergeObj);//{a: 1, ownKey3: "33333"} 
九年囚 回答

select column ;這個(gè)column可以自定義

奧特蛋 回答

解決順序問題之后可能還是有問題,video應(yīng)該是只讀的

綰青絲 回答

我使用的方式 獲取實(shí)例和關(guān)聯(lián)的實(shí)例執(zhí)行刪除

也許是這樣
teacher = Teacher.findById(2)
students = teacher.getStudents()
for (let student of students) { student.destory() }
teacher.destory()

這是有效的。剛剛學(xué)習(xí)。也許還有更好的方式 :)

建議這種問題自己去做做測(cè)試,找不同的引擎使用不同的索引驗(yàn)證一下,聚集索引帶來的更新索引性能犧牲根本可以忽略,甚至合適的聚集索引反而會(huì)提高更新插入性能,mysql或者其他類型的DB可以給你很多種選擇。

哎呦喂 回答

你要根據(jù)不同的路由些不同的請(qǐng)求方法,前端通過ajax調(diào)用這些方法,在這些方法中寫返回?cái)?shù)據(jù)response響應(yīng),至于返回?cái)?shù)據(jù)的類型你可以自己考慮,只要注意前后端處理數(shù)據(jù)的類型即可。就像你在 //list 下定義的匿名請(qǐng)求方法一樣。這些node知識(shí)點(diǎn),你只要研究一個(gè)開源項(xiàng)目就行了推薦一個(gè)conde中文社區(qū)的源碼

心悲涼 回答

代碼2:
你把Function.call當(dāng)成一個(gè)function看待。這個(gè)function上調(diào)用apply方法,那么第一個(gè)參數(shù)就是this對(duì)象,而Function.call所需要的this對(duì)象必須是一個(gè)funtion,你傳遞的{},是一個(gè)空的對(duì)象,那么就要做類型轉(zhuǎn)換,也就是從{}轉(zhuǎn)換成一個(gè)function,那么肯定是會(huì)報(bào)類型轉(zhuǎn)換錯(cuò)誤,所以safari的報(bào)錯(cuò)是最嚴(yán)謹(jǐn)?shù)摹?/p>

孤酒 回答

你好,生產(chǎn)環(huán)境中一般不開啟。

TestOnBorrow=false時(shí),由于不檢測(cè)池里連接的可用性,于是假如連接池中的連接被數(shù)據(jù)庫關(guān)閉了,應(yīng)用通過連接池getConnection時(shí),都可能獲取到這些不可用的連接,且這些連接如果不被其他線程回收的話,它們不會(huì)被連接池被廢除,也不會(huì)重新被創(chuàng)建,占用了連接池的名額。

當(dāng)TestOnBorrow=true時(shí),有兩種情況:

1.集群某實(shí)例宕掉時(shí),如果連接剛好不處于通信階段,tcp連接正處于CLOSE_WAIT狀態(tài)或已關(guān)閉,當(dāng)應(yīng)用通過連接池getConnection時(shí),在borrow時(shí)會(huì)檢測(cè)連接,由于連接已關(guān)閉,于是報(bào)了如下報(bào)錯(cuò),并重新建立新連接,此時(shí)的新連接到集群的其他實(shí)例上了。后面能正常通信。

2.集群某實(shí)例宕掉時(shí),如果連接剛好處于通信階段,由于客戶端無法立即感知服務(wù)端已斷連接,它可能會(huì)報(bào)如下錯(cuò)誤,等待服務(wù)端的響應(yīng)超時(shí)報(bào)錯(cuò)。當(dāng)應(yīng)用通過連接池getConnection時(shí),在borrow時(shí)會(huì)檢測(cè)連接,由于連接已關(guān)閉,于是報(bào)了如下報(bào)錯(cuò),并重新建立新連接,此時(shí)的新連接到集群的其他實(shí)例上了。后面能正常通信。


  1. testOnBorrow和testOnReturn在生產(chǎn)環(huán)境一般是不開啟的,主要是性能考慮。失效連接主要通過testWhileIdle保證,如果獲取到了不可用的數(shù)據(jù)庫連接,一般由應(yīng)用處理異常。
  2. 對(duì)于常規(guī)的數(shù)據(jù)庫連接池,testOnBorrow等配置參數(shù)的含義和最佳實(shí)踐可以參考官方文檔。
涼汐 回答
  1. 看硬件
  2. 看索引
  3. 多數(shù)情況下沒那么容易因?yàn)槁?lián)表查詢而導(dǎo)致性能瓶頸,如果有,先檢查前面兩個(gè),然后優(yōu)化表結(jié)構(gòu)、SQL語句、引擎參數(shù)
  4. 實(shí)在要避免聯(lián)表,那只能單表拿數(shù)據(jù)自己在應(yīng)用層做合并,但是這樣你不能保證內(nèi)存中每個(gè)表的數(shù)據(jù)都是最新的。
巷尾 回答

拼寫錯(cuò)誤。SQLALCHEMY_DATABASES_URI是錯(cuò)的。SQLALCHEMY_DATABASE_URI才是對(duì)的。

寫榮 回答

沒什么區(qū)別,啟動(dòng)mongo服務(wù)器的指令就是 mongod。brew 只不過對(duì)它進(jìn)行了封裝,可以理解為 linux 上的 service,

伐木累 回答

KMP算法

KMP字符串模式匹配通俗點(diǎn)說就是一種在一個(gè)字符串中定位另一個(gè)串的高效算法。簡(jiǎn)單匹配算法的時(shí)間復(fù)雜度為O(m*n);而KMP算法,可以證明它的時(shí)間復(fù)雜度為O(m+n)。

http://www.cnblogs.com/whyand...

尤禮 回答

xa就是分布式事務(wù),內(nèi)部xa也是分布式事務(wù),人家哪里說內(nèi)部xa不是分布式事務(wù)了

下墜 回答

如果你司所有業(yè)務(wù)都是用存儲(chǔ)過程的話當(dāng)然是保持一致

但是講道理如果其他的都是用代碼碼出來的話還是可以按照正常的代碼來處理

念舊 回答

找到問題了。是我代碼寫的有問題,沒有理解透徹tornado的異步。只要將延時(shí)操作做成異步的,就解決了這個(gè)問題。

兔寶寶 回答

mysql重啟就會(huì)產(chǎn)生一個(gè)新的binlog文件,在命令行執(zhí)行show binary logs; 查看倒數(shù)第二個(gè)文件就是你重啟前執(zhí)行過的記錄