鍍金池/ 問答/ 數(shù)據(jù)庫問答
擱淺 回答

為什么會(huì)這樣我親測了一下
假如有兩張表TableATableB,數(shù)據(jù)如下:

  TableA       TableB
    1            6
    2            7
    3            8
    4            9
    5
  1. select * from TableA,TableB TableA表有5條數(shù)據(jù),TableB有4條數(shù)據(jù),查詢出來就會(huì)有5X4=20條數(shù)據(jù)

而且查詢出數(shù)據(jù)都是規(guī)律的,類似與數(shù)學(xué)的排列組合,如下:

  TableA   TableB
    1        6
    1        7
    1        8
    1        9
    2        6
    2        7
    2        8
    2        9
    3        6
    3        7
    3        8
    3        9
   ...      ...

以此類推,它會(huì)自動(dòng)把TableA表的字段分別分配給表TableB然后排列出來

2.和1一樣同理

小曖昧 回答
  1. 輸出配置,也就是在Connection.php的292行,使用dump($config)
  2. 配置沒有問題,如果數(shù)據(jù)庫和PHP不在同一臺(tái)服務(wù)器,查看3306端口是否可以訪問,如果是阿里云的話,需要配置安全策略

innodb帶主鍵表本身就是一個(gè)聚簇索引,所有數(shù)據(jù)保存在葉子節(jié)點(diǎn)中,但并不是說表本身就放在內(nèi)存中,mysql的內(nèi)存只緩存用到的部分?jǐn)?shù)據(jù)

單眼皮 回答

可能是mysql版本問題,不行可以試試moment庫,轉(zhuǎn)成‘’YYYY-MM-DD HH:mm:ss格式

npm install moment --save
moment = require('moment')
 
console.log(moment(new Date()).format('YYYY-MM-DD HH:mm:ss'))
卟乖 回答

我記得js的月份是從0開始數(shù)的,0代表1月,了解一下

久礙你 回答

對(duì)于任意數(shù)據(jù): 不是所有數(shù)據(jù)都一定能合并 ("最終一致")。比如dropbox在有沖突的時(shí)候是直接給你復(fù)制一份,讓你自己解決。

只有文本的時(shí)候相對(duì)好些,但能合并也需要不弱的條件。無法合并時(shí)讓人類 (你的用戶) 處理可能比較好。

空白格 回答

根據(jù) mongodb-3-6-2-2008r2-plus-not-installing 安裝時(shí) 把 Compass?去掉

誮惜顏 回答

我理解下需求如下:

  1. 查詢只按準(zhǔn)考證號(hào)查詢;
  2. 準(zhǔn)考證是唯一的;
  3. 每次的返回結(jié)果都需要返回總成績和名次;
  4. 成績變化的頻度不高,時(shí)間越往后頻度越低;

實(shí)現(xiàn)思路:

  • 準(zhǔn)考證號(hào)建立唯一索引,這樣查詢起來非常快,毫秒級(jí)別。
  • 單獨(dú)寫一個(gè)服務(wù),根據(jù)記錄的總成績算出來其所在名次。這種查詢效率最高。維護(hù)比較麻煩些。還要考慮成績變了,名次沒變這種不同步的情況。
  • 或者 每次都動(dòng)態(tài)查詢名次,這種實(shí)現(xiàn)簡單、效率也還行(對(duì)于700W數(shù)據(jù)來說)。 不會(huì)存在成績和名次同步問題。
愿如初 回答

使用 WATCH/MULTI/EXEC ,watch能保證 MULTI 和 EXEC 之間的命令只有在watch的值沒有變化才執(zhí)行成功,見官方文檔https://redis.io/topics/trans...

所以一般這個(gè)鎖的值要在整個(gè)系統(tǒng)保持唯一。

柚稚 回答

1.將option的值改為和名稱一樣的值
2.或者將php里面的post值拼接my

純屬愚見,僅供參考

心夠野 回答

菜單表menu (id,name)
用戶菜單關(guān)系表user_menu (id,menuID,userID)
用戶表user (id,name)

select b.* from user_menu a inner join menu b on a.menuID = b.id inner join user c on a.userID = c.id where c.id = <uid>
維他命 回答

關(guān)于order by的查詢優(yōu)化可以看一下:

主要介紹了兩個(gè)方法:

  • 第一個(gè)是FORCE INDEX (PRIMARY):這個(gè)理解很直白就是強(qiáng)行加索引
  • 第二個(gè)是late row lookups,也就是文章的重點(diǎn),其實(shí)就是先構(gòu)造一個(gè)只有id的子查詢,然后再join一起。這樣極大的提高效率。如下示例代碼,o是通過你的表和只有id查詢出來的臨時(shí)字表,l是要join一起包含所有字段的表。
SELECT  xx,xxx,....
FROM    (
        SELECT  id
        FROM    <你的表>
        ORDER BY
                id
        LIMIT <返回條數(shù)的范圍>
        ) o 
JOIN    <你的表> l
ON      l.id = o.id  
ORDER BY
        l.id
敢試 回答

你可以查看一下我的項(xiàng)目里的 config.py :https://github.com/eastossifrage/pyblog/blob/master/config.py

SQLALCHEMY_COMMIT_ON_TEARDOWN = True

這一項(xiàng)就是你想要的。

凹凸曼 回答
SELECT 1 FROM dual
WHERE SYSDATE > to_timestamp('2018-06-01', 'yyyy-mm-dd')
初念 回答

EvIo 有些特性:

  • 同作用域下,同類事件會(huì)相互覆蓋,后面定義的覆蓋前面的
  • 嵌套事件,需要再次執(zhí)行 Ev::run 才會(huì)觸發(fā),再次調(diào)用 Ev::run 后事件的執(zhí)行不可預(yù)測。

基于上面兩個(gè),我發(fā)現(xiàn)了一個(gè)特殊的現(xiàn)象:

function login($fd , $flag , $callback , $args){
    return new EvIo($fd , $flag , $callback , $args);
}

// 這種方式定義多個(gè)重復(fù)事件,都會(huì)觸發(fā) ..
// 無語,但是目前就是用這種方式投入使用的
$one = login($socket , Ev::READ , null , null);
$two = login($socket , Ev::READ , null , null);

// 跑進(jìn)程
Ev::run();
尋仙 回答

查一下文檔:

逗婦乳 回答

原因

$lookup 首先進(jìn)行的是左外連接查詢。 當(dāng)匹配到多個(gè)滿足外鍵條件的記錄時(shí),會(huì)放到數(shù)組子集合里。 再之后你的match2,match3,match4,match5針對(duì)子集合查詢。 而mongo這里的子集合匹配,只要子集合中有一條滿足,就會(huì)全部整條記錄滿足。

解決方法

  1. 如果是mongodb V3.2、V3.4版本的$lookup提供的解決方案是先$unwind一下。
  2. 如果是mongodb V3.6及以上的版本,$lookup提供了pipeline字段。具體參考$lookup官方文檔
乖乖瀦 回答

原來是yum源不對(duì),換了源再使用yum install gdb就可以了。

厭惡我 回答

一直建議大家用RPM或從軟件源安裝,這也是原因之一了。
RHEL的軟件源安裝可以參考文檔,不多說了。從安裝到啟動(dòng),停止,開機(jī)自啟動(dòng)全都有講。
需要注意的是你原來是以root賬號(hào)啟動(dòng),基于安全原因一般是不建議的。源安裝的版本是以mongod用戶啟動(dòng),所以需要修改相應(yīng)的目錄權(quán)限,包括dbpath和其他一些地方,啟動(dòng)的時(shí)候注意看log,里面會(huì)提示你哪些權(quán)限不對(duì)。