你貼的代碼是:先commit,后execute?
用微信web開(kāi)發(fā)者工具單步調(diào)試一下看看
mysql的理論依據(jù)沒(méi)找到,個(gè)人理解是先執(zhí)行where的過(guò)濾條件,先關(guān)聯(lián)再過(guò)濾明顯做的是無(wú)用功。
oracle中倒是能在執(zhí)行計(jì)劃中看到,先執(zhí)行的是過(guò)濾條件(下面代碼中最后一行)。
explain plan for SELECT * FROM tmp_t2 t2 LEFT JOIN tmp_t1 t1 ON t2.id = t1.id AND t1.good_id = 'A'
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 3 | 147 | 6 (0)| 00:00:01 |
|* 1 | HASH JOIN | | 3 | 147 | 6 (0)| 00:00:01 |
| 2 | TABLE ACCESS FULL| TMP_T2 | 3 | 60 | 3 (0)| 00:00:01 |
|* 3 | TABLE ACCESS FULL| TMP_T1 | 3 | 87 | 3 (0)| 00:00:01 |
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("T2"."ID"="T1"."ID")
3 - filter("T1"."GOOD_ID"='A')路由必須寫(xiě)在app.use(cookieparser());
之后才能通過(guò)cookie-parser中間件拿到cookie;
var express = require('express')
var cookieParser = require('cookie-parser')
var app = express()
app.use(cookieParser())經(jīng)驗(yàn)上講,我會(huì)覺(jué)得直接find({"city":"北京市"})可能還更快,不妨自己比較一下。
這里使用多線程會(huì)使復(fù)雜度大增,而實(shí)際帶來(lái)的價(jià)值很有限甚至反作用,如果你對(duì)多線程的掌握還不夠爐火純青的話。
find之后的數(shù)據(jù)是要要進(jìn)行處理的,iterator_to_array
敢不敢上完整一點(diǎn)的代碼。。。。。。
測(cè)試用例:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`months` varchar(7) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
insert into `test`(`id`,`months`) values
(1,'2018-01'),
(2,'2017-12'),
(3,'2017-11');
查詢語(yǔ)句
SELECT months AS WhichMonth,(SELECT DAY(LAST_DAY(CONCAT(months,'-01')))) AS TotalDays FROM test GROUP BY months
測(cè)試結(jié)果:
使用 event (http://nodejs.cn/api/events.html)自定義事件并監(jiān)聽(tīng)即可,數(shù)據(jù)庫(kù)都操作完成再觸發(fā)事件向前端傳輸數(shù)據(jù)。
User.
findOne({ name: 'Val' }).
populate({
path: 'friends',
// Get friends of friends - populate the 'friends' array for every friend
populate: { path: 'friends' }
});不用靠猜,跑一把EXPLAIN,有沒(méi)有用索引一看便知
最大的有符號(hào) BIGINT值是9223372036854775807,檢查一下有沒(méi)有溢出
參考官方問(wèn)題解釋
https://dev.mysql.com/doc/refman/8.0/en/out-of-range-and-overflow.htmlmysql 8.0嗎?看下這個(gè)
https://segmentfault.com/n/13...
mysql正常監(jiān)聽(tīng)3306端口,如果在docker容器里面可以連接的話,證明docker環(huán)境端口已經(jīng)打開(kāi)。
那么在外面連接不上的原因:可能是docker端口沒(méi)有映射到宿主機(jī)上。
解決方案:
宿主機(jī)為Linux環(huán)境的話,直接在docker run 命令中使用 -p 3306:3306映射即可
宿主機(jī)為windows環(huán)境的話,使用上述命令做好映射之后,還需要查找一下docker虛擬機(jī)的ip進(jìn)行連接
命令為:docker-machine ip default
原因是:docker是運(yùn)行在Linux上的,在Windows中運(yùn)行docker,實(shí)際上還是在Windows下先安裝了一個(gè)Linux環(huán)境,然后在這個(gè)系統(tǒng)中運(yùn)行的docker。也就是說(shuō),服務(wù)中使用的localhost指的是這個(gè)Linux環(huán)境的地址,而不是我們的宿主環(huán)境Windows。
都不用加, SQLAlchemy 會(huì)用它選的那個(gè)實(shí)現(xiàn)而已。
使用mysql_use_result()時(shí),必須執(zhí)行mysql_fetch_row(),直至返回NULL值,否則,未獲取的行將作為下一個(gè)檢索的一部分返回。
https://baike.baidu.com/item/...
你這樣關(guān)聯(lián)字段來(lái)判斷是否已讀消息不科學(xué)啊,后期數(shù)據(jù)量大起來(lái)的話很難受的
一般都是消息表有個(gè)狀態(tài)字段來(lái)區(qū)分它們,比如:
—————————————————————————————————————————
| Id | 編號(hào) |
—————————————————————————————————————————
| State | 消息狀態(tài):1 未讀 2 已讀 |
—————————————————————————————————————————
關(guān)聯(lián)還是 messageId 與 消息表 Id 關(guān)聯(lián)
但查詢未讀消息的話就這樣
SELECT * FROM [message] WHERE State=1
豈不美哉?。?!
other 里存放的數(shù)據(jù)應(yīng)該只是單純地用于記錄,絕對(duì)不會(huì)被用于 搜索、 排序、 統(tǒng)計(jì)、 聯(lián)表的字段。
像 birthday、place這樣的字段我一般還是會(huì)分別使用一個(gè)字段進(jìn)行存儲(chǔ)的,這兩個(gè)字段很容易被用于類似不同年齡段的用戶占比,不同地區(qū)的用戶占比 的統(tǒng)計(jì)功能,存在other中的話會(huì)很不方便。
當(dāng)然,具體怎樣存儲(chǔ)還是需要根據(jù)實(shí)際需求來(lái)定。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。