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

使用聚合查詢

db.projects.aggregate([{
    $lookup:{
        from:'users',
        localField: 'userId',
        foreignField: '_id',
        as: 'userinfo'
        }
},{
    $match:{
        'userinfo.sex': '0'
}},{"$unwind": "$remark"}])
練命 回答

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

  1. mbstring,Ubuntu下安裝方式apt-get install php7-mbstring
  2. gd,Ubuntu下安裝方式apt-get install php7-gd
朕略萌 回答

嗯,其實(shí)一兩天還是蠻常見的,不過當(dāng)然是越快解決越好了。而且碰到這種問題,最好如果有報錯先將報錯信息,以及相關(guān)代碼放上來才方便大家?guī)湍悴檎覇栴}。關(guān)于外鍵這塊,我涉及的也不多(不是不多,而是根本沒有實(shí)操過,一般都是通過程序控制 sql 。)相關(guān)鏈接

墨沫 回答

前面啰嗦得太多,我再把問題精簡一下:

如何設(shè)計詞索引,使得 —— 若 將來 改進(jìn)了分詞算法,在不重建索引的情況下,搜索結(jié)果也能改進(jìn)?

例如,當(dāng)詞典沒有“區(qū)塊鏈”一詞時,搜索結(jié)果可能包含大量“區(qū)塊”和“鏈”兩個詞的文檔;當(dāng)把“區(qū)塊鏈”加入詞典后,在不重建索引的情況下,立即就能找到包含“區(qū)塊鏈”的文檔,排名在包含“區(qū)塊”和“鏈”兩個詞的文檔前面。

Writing to net

The server is writing a packet to the network. This state is called Sending to client as of MySQL 5.7.8.

ref: https://dev.mysql.com/doc/ref...

本地select 超過1S,推測你每次select出的數(shù)據(jù)集比較大,本地的packet設(shè)置得過小

在Mysql執(zhí)行下

show global variables like "max_allowed_packet"

解決方案:

  1. 降低每次查詢出的結(jié)果集
  2. 增大max_allowed_packet
幼梔 回答

大部分二維碼,要么里面是個 鏈接的字符串,要么就是鏈接的一些參數(shù),你在拿到這個串之后,肯定要做一些 動作,比如轉(zhuǎn)義,跳轉(zhuǎn)之類的操作。你要做什么,要你自己來實(shí)現(xiàn)。想清楚你要什么,然后怎么實(shí)現(xiàn),一步一步列清楚,這才是寫程序需要的思維。

怣痛 回答

三張表,任務(wù)表、用戶表、關(guān)聯(lián)表,負(fù)責(zé)多對多關(guān)系;
任務(wù)表中加入一個發(fā)布人字段,負(fù)責(zé)一對多

法克魷 回答

哪個效率高,看一下執(zhí)行時間就可以了么,然后explain一下看看。
說點(diǎn)題外話:當(dāng)你覺得你同事屬于那種死腦筋,完全堅持自己想法的人的時候,或許他也這么想你呢,為什么一定要讓別人按你的想法寫代碼呢?除非遇到了很嚴(yán)重的效率問題

擱淺 回答

一般來說,mysql的兩個表的連接是先找出A表的一條記錄,然后根據(jù)連接條件找出B表中的所有記錄,然后再回到A表找到下一條記錄....
但是你的情況是根據(jù)B的某個字段排序,如果按照我上面說的即使在B的排序字段上加了索引那么也不會用到的。Mysql自身有查詢優(yōu)化器的,如果單純的是你說的業(yè)務(wù)邏輯,有可能查詢優(yōu)化器會改變你的連接順序(變成B連接A),這樣就變成在B中找到一條記錄,然后再去A表找記錄。如果這個時候再在B表上建索引就會用到。
具體的情況你要用explain看一下mysql的查詢計劃才好做優(yōu)化。
在這里再啰嗦一句,你也可以在你的連接字段和排序字段上建立一個“聯(lián)合索引”。這樣相對分開建索引效率會高一些。但是要遵循向左原則

尤禮 回答

老哥首先你的SID沒有問題 ,排查思路:

  1. 你檢查的是你的tnsname.ora,這個;連接文件 ,然后測試 在cmd 里正常用監(jiān)聽登錄是否可以登錄

2.我是昨天研究的 ,你的pandas 學(xué)習(xí)了 pd.read_sql(sql,conn) 這個寫法待驗(yàn)證 ,是我get 到的點(diǎn)

3.我遇到的問題是在ubuntu用pycharm里寫代碼無法連接oracle數(shù)據(jù)庫 ,但pycharm 自帶的工具可以連接,在shell里也可以正常連接 最后也沒有找到原因 一直報錯說是不是64位客戶端 ,但我所有的包都是64位的,待解決。。。

4.最后附上干貨,我的連接demo 以及將數(shù)據(jù)寫入到csv文件,僅供參考,老哥記得回復(fù)我,維護(hù)社區(qū)秩序。。

#!/usr/bin/python

import cx_Oracle as oracle
import csv
def oraclesql(cursor):
   #fp = open('D:/1.sql')
   #fp_sql = fp.read()
   cursor.execute("select * from emp")
   data = cursor.fetchall()
   #print (list(data))
   return list(data)
def write_to_csv(content):
    with open('oracle.csv','a') as csvfile:
        filename = ['empno','ename','job','mgr','hiredate','sal','comm','deptno']
        #filename = ['LOTS','ORG_ID','YEAR_TIME','NAME_PATIENT','GENDER','BIRTHDAY','AGE','RESIDENT_ID','HUKOU_ADDRESS']
        write = csv.writer(csvfile,delimiter=',')
        # write.writeheader()
        
        write.writerows([content])

 
 
if __name__ == '__main__':
   ipaddr = "127.0.0.1"
   username = "scott"
   password = "scott"
   oracle_port = "1521"
   oracle_service = "orcl"
   try:
      db = oracle.connect(username+"/"+password+"@"+ipaddr+":"+oracle_port+"/"+oracle_service)
    # 將異常捕捉
   except Exception as e:  
      print(e)
   else:
      cursor = db.cursor()
      data = oraclesql(cursor)
      for i in data:
          text = list(i)
          #print(text)
          write_to_csv(text)
      cursor.close()
      db.close()
      
何蘇葉 回答
show variables like  'binlog_format';

看一下 binlog_format 對應(yīng)的值是多少

再參考一下 binary-log-formats

夏木 回答
The recommended namespace for passing information through middleware and to your frontend views.

body和原來一樣沒變過,只說說state。
為什么會有state,因?yàn)槲覀儠械胶芏嘀虚g件用于存儲某些昨天,比如登陸或者權(quán)限驗(yàn)證,在此之前,我們會報錯到ctx的一個自定義屬性上比如ctx.locals.isLogin,但是我們總是要寫類似這樣的代碼

app.use(async ctx => {
    ctx.locals = ctx.locals || {};
});

現(xiàn)在官方提供了ctx.state用于報錯中間件的狀態(tài)數(shù)據(jù)。

抱緊我 回答

可以在數(shù)據(jù)庫表里面加一個字段,標(biāo)識一下;
或者把查過的數(shù)據(jù)主鍵放進(jìn)redis的set里面,每次隨機(jī)查出來后過濾一下

離人歸 回答

-h IP:是通過TCP/IP連接方式連接
-h localhost: 是通過socket連接方式連接

可以通過修改配置文件

protocol=tcp  # 強(qiáng)制使用TCP/IP 連接
skip-networking  #強(qiáng)制使用socket來連接。

氕氘氚 回答

想了一下目前還是在副表中查詢本周的記錄,如果記錄等于7條表示已經(jīng)本周簽到了7天,實(shí)在想不到更好的方法了。

巴扎嘿 回答

哈哈,
開PAC模式哇。 然后設(shè)置 PAC 和 Global 的快捷鍵。 以及開關(guān)Shadowsocks的快捷鍵。
如此也可來去自如~

雅痞 回答

其他選項菜單-打開配置文件-vhost-ini
clipboard.png
Options -Indexes +FollowSymLinks +ExecCGI改成 Options +Indexes +FollowSymLinks +ExecCGI
再重啟試試

六扇門 回答

err的翻譯是

The API configuration file does not exist
API配置文件不存在
我建議你直接找后端小伙伴解決這個問題

刮刮樂 回答

前端頁面的這個分頁功能的數(shù)據(jù)庫固定嗎?
如果固定的話,可以在 Model 里面加上 __bind_key__ = 'db01'

如果不固定的話,換個思路,根據(jù)你上面的 query 自己實(shí)現(xiàn)一個paginate()