鍍金池/ 問答/ 數(shù)據(jù)庫問答
孤客 回答

我理解IN是sql語句的寫法,不能放到PL/SQL的程序代碼中
可以換另外一種寫法:

SELECT count(*) 
INTO v_count
FROM (
    SELECT acc FROM ... WHERE ...)
)
WHERE acc = v_acc;

IF v_count > 0 THEN
  ...
END IF;
舊螢火 回答

主從關(guān)系如果建立正確,在主庫新建表,是會同步到從庫的。我建立的主從庫是這樣的。

鐧簞噯 回答

$timestr = time();
$now_day = date('l',$timestr);
//輸出的是星期幾,注意是英文。例如星期五 這里會輸出Friday。
echo "今天:$now_day";
if ($now_day == 'Monday') {

//這里獲取商品打折的價

} else {

//這里獲取商品原價

}

不將就 回答
//查詢createAt時間為2018-07-25號一整天的數(shù)據(jù)
yourModel.findOne(
    {"meta.createAt":{$gte:new Date("2019-07-25"),$lt:new Date("2019-07-26")}}
    ,callback
);
吢涼 回答

我一般是封裝成一個多參數(shù)的函數(shù), 如果參數(shù)為空字符串或者為-1就表示沒有此查詢條件

from sqlalchemy.sql import and_, or_
# 多條件查詢
def get_safety_list(offset, limit, con_date1, con_date2, con_invite, con_name, con_plan, salesman, con_pay):
    try:
        condition = (Safety.id > 0)

        if con_date1 > 0:
            condition = and_(condition, Safety.date >= con_date1)
            condition = and_(condition, Safety.date <= con_date2)

        if con_invite != "":
            condition = and_(condition, Safety.invite.ilike('%' + con_invite + '%'))
        if con_name != "":
            condition = and_(condition,
                             or_(Safety.name.ilike('%' + con_name + '%'), Safety.phone.ilike('%' + con_name + '%')))
        if con_plan != -1:
            condition = and_(condition, Safety.safety_plan == con_plan)

        if len(salesman) > 0:
            condition = and_(condition, Safety.invite.in_(salesman))

        if con_pay != -1:
            condition = and_(condition, Safety.origin == con_pay)

        a = Safety.query.filter(condition)
        count = a.count()
        a = a.order_by(Safety.id.desc()).limit(limit).offset(offset).all()
        return a, count
    except Exception as e:
        logging.error("manager.dbhelper.py get_safety_list exception:" + str(e))
    return (), 0
司令 回答

DELETE FROM your_table WHERE online < NOW() - 20;

更精確的刪除的話在后面繼續(xù)加where條件

青瓷 回答

mysql主從的作用:
1、數(shù)據(jù)熱備:作為后備數(shù)據(jù)庫,主數(shù)據(jù)庫服務(wù)器故障后,可切換到從數(shù)據(jù)庫繼續(xù)工作,避免數(shù)據(jù)丟失。
2、架構(gòu)的擴(kuò)展:業(yè)務(wù)量越來越大,I/O訪問頻率過高,單機(jī)無法滿足,此時做多庫的存儲,降低磁盤I/O訪問的頻率,提高單個機(jī)器的I/O性能。
3、讀寫分離使數(shù)據(jù)庫能支撐更大的并發(fā)。在報表中尤其重要。由于部分報表sql語句非常的慢,導(dǎo)致鎖表,影響前臺服務(wù)。如果前臺使用master,報表使用slave,那么報表sql將不會造成前臺鎖,保證了前臺速度。
或者 如果網(wǎng)站訪問量和并發(fā)量太大了,少量的數(shù)據(jù)庫服務(wù)器是處理不過來的,會造成網(wǎng)站訪問慢。數(shù)據(jù)寫入會造成數(shù)據(jù)表或記錄被鎖住,鎖住的意思就是其他訪問線程暫時不能讀寫要等寫入完成才能繼續(xù),這樣會影響其他用戶讀取速度。采用主從復(fù)制可以讓一些服務(wù)器專門讀,一些專門寫可以解決這個問題。

而集群則是直接增加可承載讀寫量的辦法,效果比主從好。

淡墨 回答

1 確保命中索引。
2 不要一次查太多數(shù)據(jù),分頁查詢。
3 換更好的機(jī)器,上SSD。

法克魷 回答

不用數(shù)據(jù)庫連接池,而由程序去操作conn,其每次操作完后都需要commit,當(dāng)你的應(yīng)用中有并發(fā)寫操作時會有一定的影響,一般都是交給數(shù)據(jù)庫連接池,,它會在一開始初始化一定量的連接實例,當(dāng)你需要用時它會自動分配去處理。
由于創(chuàng)建連接的代價是很高的, 我們每次訪問數(shù)據(jù)庫都重新創(chuàng)建連接的話是非常消耗性的.

我們可以再程序啟動的時候先創(chuàng)建出一些連接, 放在一個集合中, 訪問數(shù)據(jù)庫的時候從集合中獲取, 使用結(jié)束再放回集合中.

這樣做只是在程序啟動的時候消耗性能去創(chuàng)建連接, 每次訪問數(shù)據(jù)庫的時候都是從內(nèi)存中獲取連接, 可以大大提升效率.
注意事項:

由于池中增刪非常頻繁, 使用集合LinkedList效率較高

集合中所有連接都被占用時創(chuàng)建新連接, 但需要注意連接總數(shù)

使用組合模式/動態(tài)代理處理釋放連接的方法, 當(dāng)運(yùn)行close方法時, 將連接放回池中

你試試給 www 用戶權(quán)限看看
cd /www/{你的網(wǎng)站目錄}
chown www:www -R ./
瞄小懶 回答

不行,只有自增。

如果是倒序就是自減了,那最大從多少開始呢? 沒法預(yù)估。

入她眼 回答

spring task在深夜業(yè)務(wù)不繁忙的時候,異步任務(wù)弄。可以做每日增量更新

耍太極 回答

可以使用aggregate實現(xiàn).
比如:

> db.user.aggregate(
    {'$group':{
        '_id': {'IP': '$IP'},
        'uniqueIds': {'$addToSet': '$_id'},
        'count' : {'$sum': 1}
    }},
    {'$match': {
        'count': {'$gt': 1}
    }}
)

詳細(xì)用法參考mongodb doc: aggregate.

遲月 回答

我錯了, 沒有對查詢字段加索引。加了索引,cpu降低了40%

悶騷型 回答

啊,你這樣的方式我以前也喜歡用,不過現(xiàn)在不太喜歡用了。不過mysql 有個函數(shù),查找包含在其中的。我給你找找這個函數(shù)名。find_in_set 這個,不過好像還有另一個,我忘了。可以看下 鏈接描述

具體自行摸索吧,不多說了。

兔寶寶 回答

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

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

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

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

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