鍍金池/ 問答/ 數(shù)據(jù)庫問答
青黛色 回答
  1. code怎么來的?是不是和邀請人ID有關(guān)系
  2. nodejs直接獲取查詢字符串得到code然后根據(jù)第1步得到邀請人ID
賤人曾 回答

python3 -m pip install pymysql

運行你的程序也要指定是用 python3 xxx.py

問題可能是pip3 install xxx跟你運行程序時使用的Python解釋器不是同一個。

賤人曾 回答

一天 300W ,一周 2000W ,一個月 1億,一年是 10 億級別的,還是算大了。(當(dāng)然,如果你的指標(biāo)維度,只有你列出的那么一點,那數(shù)據(jù)還是很簡單的)
MySQL 就別想了,不光它,任何通用的關(guān)系型數(shù)據(jù)庫都別想了。
并且,通用數(shù)據(jù)模型層面的(即指望一套方案,在不人為針對性設(shè)計的情況下,直接解決所有數(shù)據(jù)存儲的問題),就不要想著去解決了。(真不是你們能解決的問題)
針對具體“事實”下的數(shù)據(jù),專門做一些存儲的設(shè)計,要解決還是有可能的。

功能好點的方案,我知道有 2 個,一個是基于 Postgresql 的 Greenplum ,另一個是 yandex 開源出來的 Clickhouse。

前段時間我看 ClickHouse 的東西寫在 https://www.zouyesheng.com/cl... 。

另外還有一個思路,就是靠 HBase 這種,窮舉維度預(yù)處理計算,靠空間換時間。不過這種方案,在應(yīng)用層上不太好設(shè)計,對 SQL 的基本支持都是一個挑戰(zhàn)。

雨蝶 回答
  1. 這是什么教程簡直就是誤人子弟,學(xué)mongodb最好的方式是看官方文檔。

  2. mongod是mongodb數(shù)據(jù)庫的服務(wù)端進(jìn)程,mongo是客戶端,通過mongo可以連接到mongod服務(wù)端并進(jìn)行操作。

  3. windows上應(yīng)該是要把mongod配置成系統(tǒng)服務(wù),然后開機自啟動。

  4. mongod的dbpatch目錄下的數(shù)據(jù)存儲文件名沒有和你設(shè)置的庫名或者表名直接對應(yīng)的,你只能看到一堆collection(表)文件和一堆index(索引)文件,具體你某個庫或者表存儲在那個文件中對你是透明的。

伴謊 回答

postgre, 一對多用數(shù)組

WITH C AS (SELECT 商品ID,ARRAY_AGG(標(biāo)簽) AS 標(biāo)簽 FROM B GROUP BY 商品ID)
SELECT A.*, 標(biāo)簽 FROM A LEFT JOIN C USING(商品ID) WHERE 你的條件
朕略萌 回答

將日期改成20170801這樣的整型吧,直觀,查詢效率又高。

尐潴豬 回答

說明 between 這個 operator 沒有生效,有可能是 http://docs.sequelizejs.com/m... 的原因。
把 operatorsAliases 加上試試:

const Sequelize = require('sequelize');

const Op = Sequelize.Op;      
const operatorsAliases = {
    $eq: Op.eq,
    $ne: Op.ne,
    $gte: Op.gte,
    $gt: Op.gt,
    $lte: Op.lte,
    $lt: Op.lt,
    $not: Op.not,
    $in: Op.in,
    $notIn: Op.notIn,
    $is: Op.is,
    $like: Op.like,
    $notLike: Op.notLike,
    $iLike: Op.iLike,
    $notILike: Op.notILike,
    $regexp: Op.regexp,
    $notRegexp: Op.notRegexp,
    $iRegexp: Op.iRegexp,
    $notIRegexp: Op.notIRegexp,
    $between: Op.between,
    $notBetween: Op.notBetween,
    $overlap: Op.overlap,
    $contains: Op.contains,
    $contained: Op.contained,
    $adjacent: Op.adjacent,
    $strictLeft: Op.strictLeft,
    $strictRight: Op.strictRight,
    $noExtendRight: Op.noExtendRight,
    $noExtendLeft: Op.noExtendLeft,
    $and: Op.and,
    $or: Op.or,
    $any: Op.any,
    $all: Op.all,
    $values: Op.values,
    $col: Op.col
};

const sequelize = new Sequelize('db', 'user', 'pass', {
   
    host: 'localhost',
    dialect: 'mysql',
    pool: {},

    operatorsAliases: operatorsAliases,  //操作符安全
});
安若晴 回答

我提個曲線救國的方法,就別按userid分表了,怪累的,直接根據(jù)評論時間按月分表,我們的經(jīng)驗是Mysql的話每張表不超過2000萬條數(shù)據(jù)就行,這樣匯總起來就方便多了,后臺管理唯一需要注意的就是pagination的問題。

就算是拋磚引玉了,希望能幫到你。

更新:flc1125提到了負(fù)載的問題,我頂多能想到加redis緩存,還想問問這個評論的主要查詢業(yè)務(wù)是啥?是展示某個文章的最近評論?

伐木累 回答

charset 問題。建議全用utf-8

骨殘心 回答

很有可能是你這幾條數(shù)據(jù)已經(jīng)被刪除了

但是沒有刷新數(shù)據(jù)庫

導(dǎo)致拋出刪除已經(jīng)不存在的數(shù)據(jù)

刷新一下試試

墨小羽 回答

不寫模塊名,默認(rèn)當(dāng)前模塊。
不寫控制器,默認(rèn)當(dāng)前控制器。

懶豬 回答

1.在主機執(zhí)行以下命令
iptables -A INPUT -i docker0 -j ACCEPT
2.進(jìn)入容器,執(zhí)行命令
root@fdbbff27a91c:/# ip route
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.2
得到 172.17.0.1 ,可以通過該地址訪問宿主
具體可參考:
https://stackoverflow.com/que...

近義詞 回答

laravel 里面默認(rèn)沒有場景的概念,你可以使用不同的Request來模擬場景,達(dá)到你的需求

有點壞 回答

name 是另一個表的字段嗎?

祉小皓 回答

這只是一個異步流程控制的問題,寫成Promise返回db并使用。而Promise狀態(tài)確定不再更改,也就不會走你鏈接db的邏輯

失心人 回答

可以創(chuàng)建兩張表,一張客戶表Customer ,一張單詞表Word
首先,Customer表:

    (客戶Id)              (姓名)       (次數(shù))
   CustomerId             Name         Num     
        1                 張三          2
        2                 李四          5
        3                 王五          8

然后是Word表:

   (單詞Id)          (關(guān)聯(lián)客戶Id)       (單詞大小) 
   WordId            CustomerId          Size
     1                   3                5
     2                   1                9
     3                   2                10
筱饞貓 回答

你的方案1慢是因為變成了多次操作,每次都需要經(jīng)過網(wǎng)絡(luò)傳輸,對性能影響較大。相應(yīng)的解決方案也有多個,取決于你的環(huán)境版本和驅(qū)動版本可采用不同的方案(具體用法請查詢相應(yīng)版本驅(qū)動的文檔,我下面給的是pymongo 3.7的鏈接):

使用bulk_write方法

初始化多個update方法,然后放在一個bulk里面執(zhí)行。bulk_write的文檔

使用唯一索引+insert_many+ordered=false

insert_many方法本質(zhì)上也是bulk操作,但它較update少了搜索的部分,因此理論上更快。
同時也是因為沒有進(jìn)行搜索就插入,它沒有辦法判斷插入的數(shù)據(jù)是否存在,這點就需要通過item_id上的唯一索引來確保。
同時默認(rèn)情況下insert_many使用ordered=true,遇到一個插入錯誤(item_id重復(fù))就停止了,所以需要ordered=false。

離殤 回答

如圖

訂單
圖片描述

orderinfo
圖片描述

執(zhí)行SQL為:

select sum(a.price * a.count) as total, a.order_id, b.user_id 
from `orderinfo` as a, `order` as b 
where a.order_id=b.id 
group by a.order_id
order by total DESC 
limit 10;

運行結(jié)果:

圖片描述

請參考。