鍍金池/ 問答/ 數據庫問答
練命 回答

問題原因:缺少兩個PHP的擴展組件mbstring和gd。
解決方式:

  1. mbstring,Ubuntu下安裝方式apt-get install php7-mbstring
  2. gd,Ubuntu下安裝方式apt-get install php7-gd
孤酒 回答

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

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

當TestOnBorrow=true時,有兩種情況:

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

2.集群某實例宕掉時,如果連接剛好處于通信階段,由于客戶端無法立即感知服務端已斷連接,它可能會報如下錯誤,等待服務端的響應超時報錯。當應用通過連接池getConnection時,在borrow時會檢測連接,由于連接已關閉,于是報了如下報錯,并重新建立新連接,此時的新連接到集群的其他實例上了。后面能正常通信。


  1. testOnBorrow和testOnReturn在生產環(huán)境一般是不開啟的,主要是性能考慮。失效連接主要通過testWhileIdle保證,如果獲取到了不可用的數據庫連接,一般由應用處理異常。
  2. 對于常規(guī)的數據庫連接池,testOnBorrow等配置參數的含義和最佳實踐可以參考官方文檔。
亮瞎她 回答

個人建議一張表就可以了,5個字段(等級、月份、比例、上線、是否生效)

你列出的EXCEL是展現樣式,沒必要根據這個來設計表結構
輸入格式盡量和用戶溝通,按照標準的二維表錄入,實在不行搞個導入功能

情皺 回答

可以貼下你題目的數據結構嗎
//修改

//偽代碼

var data = {....}; //你的答題數據

var nowQues = null; //當前題目
var nowQuesArr = [];//當前答題類型的數組 在請求到題目數據時就更新這個值 如要先答單選,就只取出單選數組
var quesLen = nowQuesArr.length; //當前答題數組長度
var count = 0; //計數器
nextBtn.click = function(){
    count ++;
    nowQues =  nowQuesArr[i];   //下一步按鈕點擊的時候更新count值,對應更新當前題目;
    if(count > nowQuesArr .length){
        if(data.qsMiddleList.length>0){
            this.nowQuesArr = data.qsMiddleLis; //如果單選題答完了就判斷 -判斷題-數組的長度,有就對應更新當前答題數組
            count = 0; //重置計數器
        }
        else if(data.complexList.length>0){
             this.nowQuesArr = data.qsMiddleLis;
             count = 0; //重置計數器
        }
    }
}

//依然可以用數組下表去切換題目,只是每個類型的最后一題時判斷下個類型的題目長度
所寫代碼只是提供思路
乖乖瀦 回答

如果是在Shell里面,應該是指定cursor.maxTimeMS(). 不同的驅動也有對應的參數,不知道你說的是哪種?

嫑吢丕 回答

Optimizer是基于RBO和CBO綜合考慮,不是一定走索引效率最高,full scan table和full scan index有時候效率會更高。

假設查詢 LIMIT 1, 符合WHERE條件的數據剛插入,是走WHERE條件索引快,還是ORDER BY id主鍵更快?顯而易見,走主鍵full scan index更快

脾氣硬 回答

ulimit -n 已經修改了,并且也生效了。最有我修改了service文件,總連接數就正常了:

[unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=root
Group=root
Environment="OPTIONS=-f /etc/mongod/mongos.conf"
ExecStart=/usr/bin/mongos $OPTIONS --maxConns 10000
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongos/mongod.pid

# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target
背叛者 回答

使用了一個比較笨的方法,就先與時間拼接成一個字符串 Concat(time,列) as newColumn ,然后MAX取得最大值,接著在使用sub取時間后的內容

臭榴蓮 回答

mongodb本身就支持備份還原,你可以在nodejs服務中增加備份還原接口,從生產環(huán)境的服務上下載備份文件,在dev環(huán)境的服務上上傳備份文件執(zhí)行還原操作。

祈歡 回答

個人理解:
1、connectionLimit 指的就是連接池可創(chuàng)建的最大連接數,mysql 沒有最小連接數,connectionLimit 由應用程序開發(fā)者自己設置,肯定是要不超過 mysql 的最大連接數

2、max_connections 就是 mysql 能同時提供有效服務的最大連接數,max_used_connections 是到 mysql 的峰值連接數,max_connecitons 可以小于 max_used_connections,比如說:你的 max_connections 為 1000 ,但是應用程序某個時刻建立了 1250 個連接,這多出來的連接數中就會出現無法提供有效服務的情況,mysql 也會報錯 too many connections

3、連接池中建立新的連接就會觸發(fā) connection 事件

凹凸曼 回答

已經找到答案。看起來是一個 Laravel 的 bug

相似的問題:

https://laracasts.com/discuss...

Eloquent 應該寫成:

$sample->update([
    'ext'=>[
        'hello'=>'world2'
        ]
   ]);

DB class 可以寫成

$sample->update(['ext.hello'=>'world2']);
逗婦乳 回答

LIMIT后少個空格

SET m_limit_string = CONCAT('LIMIT ', m_begin_row, ',', page_size);
影魅 回答

寫個存儲過程,調用

DROP PROCEDURE IF EXISTS dorepeat; 
CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
    DECLARE i int DEFAULT 0;
    REPEAT 
        SET i = i + 1; 
        set @sql_create_table_gpstrail = concat('create table if not exists tab_test_',i,' like tab_test');
        PREPARE sql_create_table_gpstrail FROM @sql_create_table_gpstrail;     
        EXECUTE sql_create_table_gpstrail;
    UNTIL i > p1 END REPEAT;
END

call dorepeat(3);
莓森 回答

可以主從同步。對主庫寫即可。其他的通過同步機制同步到另外一臺

墨沫 回答

從你代碼來看, 在構造函數中是獲取不到li的寬度的,因為在構造函數中 你只做了把li插入到ul中 而ul并沒有插入到DOM中,故 li也就沒有插入到DOM中 所以你獲取不到,考慮換個思路 實現你的需求。

北城荒 回答
  1. 把代碼上傳到服務器,搭好你這個代碼運行所需要環(huán)境。比如Node.jsMySQL等等。
  2. 如果開啟了防火墻服務,記得開放對應服務的端口,不然訪問不到的。比如MySQL,要開放3306.如果沒有開啟防火墻服務,就不用考慮這個問題。
  3. 然后開啟你程序所需要的各個服務。
  4. 然后你本地的mpvue去訪問位于服務器上的這個api的網址,接受返回的數據就可以了
她愚我 回答

你給的源碼,測試300條數據毫無問題,每次執(zhí)行均順序執(zhí)行并得出結果,python3.6.1 pymysql 0.8.0 mysql 5.7.21
懷疑可能是你的time.sleep(5) #模擬其他操作,使得mysql連接超時斷開

九年囚 回答

select column ;這個column可以自定義

糖豆豆 回答

可能那張表中的某個字段和mysql的預留字段(比如to)沖突了,要轉義一下這個字段再查

陪我終 回答
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() 將多個sources對象中的可枚舉的自有屬性復制到target對象中,然后返回target對象

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對象被改寫,包含原siginDay,userInfog合集,存在同名屬性時,后面的覆蓋前面的

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

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

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

var prototypeObj={
   pProp:"1111"
};

var descriptor = Object.create(prototypeObj);
//定義一個名為ownKey1的不可枚舉屬性
Object.defineProperty(descriptor, 'ownKey2', {
  enumerable: false,//不可枚舉
  configurable: false,//不可配置
  writable: true,//
  value: '2222'
});
//定義一個名為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);
//只有可枚舉的,自有屬性能被復制到mergeObj
console.log(mergeObj);//{a: 1, ownKey3: "33333"}