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

為什么會這樣我親測了一下
假如有兩張表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ù),查詢出來就會有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
   ...      ...

以此類推,它會自動把TableA表的字段分別分配給表TableB然后排列出來

2.和1一樣同理

小曖昧 回答
  1. 輸出配置,也就是在Connection.php的292行,使用dump($config)
  2. 配置沒有問題,如果數(shù)據(jù)庫和PHP不在同一臺服務(wù)器,查看3306端口是否可以訪問,如果是阿里云的話,需要配置安全策略
囍槑 回答
可以這樣測試
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test' , 'root' , '123456');
$stmt = $pdo->prepare("inset into test (name) values (:name)");
$stmt->execute([
    ':name' => 'test'
]);
sleep(5);
// 獲取剛插入記錄的id
var_dump($pdo->lastInsertId());

另起一個進程插入一條數(shù)據(jù).

沒用過laravel ,看了下thinkphp5 的源碼
getLastInsID 使用的是PDO 的 lastInsertId

clipboard.png

$this->linkID PDO 當(dāng)前連接ID

也就是說通過這個ID獲取的自增ID是屬于當(dāng)前對象的最后一次插入值的ID
并不是簡單的獲取最后一條數(shù)據(jù)的ID。

空白格 回答

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

蔚藍色 回答

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

卟乖 回答

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

誮惜顏 回答

我理解下需求如下:

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

實現(xiàn)思路:

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

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

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

單眼皮 回答

可能是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'))
柚稚 回答

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

純屬愚見,僅供參考

敢試 回答

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

SQLALCHEMY_COMMIT_ON_TEARDOWN = True

這一項就是你想要的。

厭惡我 回答

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

心夠野 回答

菜單表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)化可以看一下:

主要介紹了兩個方法:

  • 第一個是FORCE INDEX (PRIMARY):這個理解很直白就是強行加索引
  • 第二個是late row lookups,也就是文章的重點,其實就是先構(gòu)造一個只有id的子查詢,然后再join一起。這樣極大的提高效率。如下示例代碼,o是通過你的表和只有id查詢出來的臨時字表,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
初念 回答

EvIo 有些特性:

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

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

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

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

// 跑進程
Ev::run();
愿如初 回答

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

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

逗婦乳 回答

原因

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

解決方法

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

使用構(gòu)建器:

先搞個基礎(chǔ):

$queryBuilder = $this->getDI()->getModelsManager()
    ->createBuilder()
    ->addFrom('tableName', 't');

直接用Distinct:

$queryBuilder->distinct('t.id');

用列方法也可以, 不推薦:

$queryBuilder->columns('DISTINCT(t.id) AS id')

使用嚴(yán)格模型:

// we are waiting for it, but may still not be implemented
TableModel::find(array('distinct' => 'id'))
For count:

TableModel::count(array("distinct" => "id"));
And less recommended way according to previous answer:

TableModel::find(array('columns' => 'distinct(id)'))

抄襲自so
https://stackoverflow.com/a/3...

葬愛 回答

case g.type when 1 then ()