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

這個問題出現(xiàn)在mongoose的v5.2.0的版本中,并且已經(jīng)在mongoose的v5.2.1的版本中進行了修復

遲月 回答

orm只是一種概念,顧名思義就是對象關(guān)系映射。
具體的實現(xiàn)有 hibernate和mybatis等,干的事無非就是用sql查詢結(jié)果構(gòu)造對象以及用對象構(gòu)造sql語句

孤星 回答

不會,inner join是求交集,不會擴大數(shù)據(jù)范圍。但是有可能會增加數(shù)據(jù)條數(shù),因為一對多

怣人 回答

select title, count(user_id) total from a left join b on a.id=b.aid group by(b.aid) order by total DESC

b表有沒有數(shù)據(jù)不影響

clipboard.png

拽很帥 回答

一樓正解??梢允褂?update 語句配合 replace() 函數(shù)

淡墨 回答

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

憶往昔 回答

你說的應該是傳遞路由參數(shù)吧

routes: [
    { path: '/mainnav/:stuname', ... }
    ...
  ]

vue 動態(tài)路由匹配

維他命 回答

index 或者key 都是索引的名字而已,看需求情況,可以給需要的表加唯一索引,對于中間表,就像你加的那兩個索引,其實對于查詢速度是有影響的,只不過數(shù)據(jù)不太穩(wěn)定,可以在多對多的表加外鍵解決。最后加索引的鍵注意鍵的長度,具體了解下聚簇的概念。

司令 回答

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

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

舊酒館 回答
  1. 需要關(guān)聯(lián)到數(shù)據(jù)庫,讓 IDEA 認識你的 SQL

    clipboard.png

  2. 語言注入(這一步是自動的,只要上面正確關(guān)聯(lián)了數(shù)據(jù)庫,那么 IDEA 就可以認識你的 SQL)

    手動注入方式,在 SQL 語句上,顯示可用操作(A-Enter),選擇 Inject language or reference,選擇合適的語言即可

  3. 格式化(CA-L
    直接使用 IDEA 標準的格式化即可!
笨笨噠 回答

建議你添加一個字段時間戳timestamp,后臺獲取數(shù)據(jù)根據(jù)數(shù)據(jù)的update_time/create_time去篩選過濾,新的數(shù)據(jù)的create_time在傳遞的timestamp后面,所以就不會導致沖突;

只是提出這樣一個思路,你還需要自己結(jié)合自己的業(yè)務考慮下。

卟乖 回答

mysql有幾種不同長度的text

TINYBLOB, TINYTEXT       L + 1 bytes, where L < 2^8    (255 Bytes)
BLOB, TEXT               L + 2 bytes, where L < 2^16   (64 Kibibytes)
MEDIUMBLOB, MEDIUMTEXT   L + 3 bytes, where L < 2^24   (16 Mebibytes)
LONGBLOB, LONGTEXT       L + 4 bytes, where L < 2^32   (4 Gibibytes)
傻丟丟 回答

善用搜索
select max(a.str_avg),a.deptno from (select avg(sal) as str_avg,deptno from emp group by deptno) a group by a.deptno;
不能對包含聚合或子查詢的表達式執(zhí)行聚合函數(shù)。也就是說max,min,avg是不能嵌套的。既然按部門進行分組,那么每個部分就會存在一個最大值和一個平均值select max(sal),avg(sal) ,deptno from emp group by deptno 如果你想要查哪個部門的平均值是最高的select max(maxsal),deptno from (select avg(sal),deptno from emp group by deptno) a

懶洋洋 回答
  1. 該表我覺得沒有必要加begin_date、end_date字段
  2. 對于價格隨時間變動的應該吧price、begin_dateend_date和相應的房型組成一個新的表
  3. 查詢的時候根據(jù)當前或者選中的時間查詢2中的表,命中則使用2表中的價格,未命中則使用1表中的默認價格。
  4. 這樣一個房型可以有多個價格區(qū)間,可以達到定制某個時間段的價格,甚至可以疊加,比如7月-10月價格100,但是七夕價格10,取最新的值就好了,或者標記置頂?shù)闹怠?/li>
雨萌萌 回答

建議做成異步隊列,當某個條件觸發(fā)時候往對接丟數(shù)據(jù),然后進行計算,也不一定等到凌晨計算我現(xiàn)在也是分紅方案,我這邊是當用戶充值時候,寫入隊列,異步計算。隊列我采用是beanstalked 隊列支持數(shù)據(jù)持久化

旖襯 回答

innodb引擎的所有儲存了主鍵ID,事務ID,回滾指針,非主鍵ID,
他的查詢就會是非主鍵ID也可覆蓋來取得主鍵ID。

也就是說比如你在created_at上建立索引,此時主鍵也是在索引上的。不然你可以試試以下語句

explain select id from tablea where created_at = 1
怣人 回答

如果能給些測試條件別人會更容易理解你的問題。
首先說$eq,這個運算符大部分時候沒有必要寫。所以你的查詢等價于:

db.SEC_2018_05_12.aggregate([
    { $match : { fyear : 2018, fmonth: 5, fday: 12, fhour: 17, fmin: 8 } }, 
    { $group: { _id: {dev_id: "$dev_id", data_id: "$data_id"}, maxTimeValue: { $max: "$fdate" } } }  ]).pretty()

然后你的要求是取到第一條數(shù)據(jù),而不僅僅是最大那個fdate值??梢該Q個思路來理解這個問題:

按dev_id asc, data_id asc, fdate desc三者來排序,然后取每個分組的第一條數(shù)據(jù)

按照這個思路,查詢應該是:

db.SEC_2018_05_12.aggregate([
    { $match : { fyear : 2018, fmonth: 5, fday: 12, fhour: 17, fmin: 8 } }, 
    { $sort: { dev_id: 1, data_id: 1, fdate: -1} },
    { $group: { _id: {dev_id: "$dev_id", data_id: "$data_id"}, maxDoc: { $first: "$$ROOT" } } }  ]).pretty()

最后說說數(shù)據(jù)模型設計的問題。$match這里其實就是一個時間,但是被你拆成了很多部分來存儲。除非有明確的理由支持,個人并不是十分贊成這樣的做法。

  1. 本來一個時間只有4 bytes,你這么一來變成了5 x 4 = 20 bytes,注意存儲空間;
  2. $match/$sort需要索引的支持,所以原來一個索引現(xiàn)在將會變成5個字段的聯(lián)合索引,同樣是浪費空間和效率;

在數(shù)據(jù)量大的情況下,上面的查詢是需要索引支持的。換你現(xiàn)在的寫法,索引應該是:

{
  fyear: 1,
  fmonth: 1,
  fday: 1,
  fhour: 1,
  fmin: 1,
  dev_id: 1,
  data_id: 1,
  fdate: -1
}

看上去就夠驚悚了不是嗎?但其實前面那一堆時間本身只是一個時間而已。