where('shop_id',$shop_id)->where('pay_status',1)->where('pay_time','>','2017-11-03')
把錯誤貼出來看看
數(shù)據(jù)庫設計的時候由于未來需求經(jīng)常改變。
所以設計的時候需要把原本是列的變成行數(shù)據(jù),到時候要改列的時候通過插入行數(shù)據(jù)來實現(xiàn)。
舉個例子。
我有個手機。
有名稱價格,翻蓋還是滑蓋,智能機還是非智能機等屬性
。
那么,每個手機的值如下
ID 名稱,價格,翻蓋/滑蓋/直板,是否智能機
1,諾基亞,1000,翻蓋,否
2. 蘋果,4000,直板,是
3. 安卓,2000,直板,是
如果要增加操作系統(tǒng)
字段,需要更改表結構添加字段。
屬性表
ID,屬性名
1. 操作系統(tǒng)
2. 直板/滑蓋/翻蓋
。。。
商品表
ID,名稱,價格
1 諾基亞,1000
2 蘋果 4000
3 安卓 2000
商品屬性
商品ID ,屬性ID,屬性值
1 1 塞班
1 2 直板
2 1 ios
2 2 直板
這樣,如果要加屬性。添加屬性表的數(shù)據(jù)和商品屬性表數(shù)據(jù)即可,不需要改結構
首先,程序只有一套,數(shù)據(jù)庫只有一個。
功能
ID,功能名稱
1 廣告功能
2 可以自定義微信公眾號
...
客戶功能
客戶ID,功能名稱
1 1
1 2
做好緩存,那么我讀取到客戶1的時候會發(fā)現(xiàn)客戶1有廣告功能和微信功能,那么程序根據(jù)這個該顯示頁面的添加頁面顯示,后臺可以操作的,后臺也顯示出來
需要看一下執(zhí)行計劃:
db.<表>.explain(true).count(<條件>);
從中可以了解到count時是否可以用到索引,用到哪條索引。{background: true}
的索引只是在初次創(chuàng)建時不阻塞前臺線程,并不是指異步創(chuàng)建索引,所以不存在你說的問題。
可能性較大的是這9條索引中有一個或多個是部分索引,而執(zhí)行計劃選中的是這個索引??梢圆榭此饕渲茫?/p>
db.<表>.getIndexes();
通常MongoDB不太可能選擇這樣的索引來count,所以也可能是特定版本的bug,希望看到你的服務端版本來確認:
db.serverBuildVersion();
綜上,我們需要看到:
不要直接拼接字符串,如果你的內(nèi)容包括以下符號 ' -- [ ] 等 ,可能會報錯,
例如本來你想查詢 select * from table where name = '${var1}';
, 如果你的變量var1 是 Mr.W'O
,那么拼接后你的語句就變成了 select * from table where name = 'Mr.W'O';
語句中出現(xiàn)了三個 ' 當然會報語法錯誤。 報錯還是小事情,被黑客利用而進行sql注入就麻煩了。
建議你用node的模塊mysql或mysql2 對變量進行編碼,可能你的寫法就變成了這樣
var sql = `insert into article_list
(title,author,summary,is_top,catalog_alias,content)
values
(?,?,?,?,?,?)`;
let result = mysql.query(sql, [req.body.title, req.body.author,req.body.summary,req.body.is_top])
因為我也是剛剛學習這個。。。
body-parser這個中間件的問題
post需要用這個
寫上端口!命令行默認3306,sequel pro并不會給你默認
方案三:能不能加一個埋點處理呢?也就是,在可能發(fā)生有效銷售情況的地方,做一個埋點處理,然后就不會讓0銷售的數(shù)據(jù),進入處理中間表了呢?
終于搞明白了
使用Docker用相同的鏡像創(chuàng)建兩個不同的實例就可以,如果沒有Docker可以使用不同的配置文件啟動兩個,前提是兩個的端口號都不能重復。
1、外鍵首先是鍵,有鍵即意味邏輯上的引用關系,通常會有索引,查詢會更快;
2、其次是約束, 避免插入一些不合理的數(shù)據(jù),需要另一個表的ID, 但另一表里沒有數(shù)據(jù),如果允許這樣的話,應用層面需要做不斷地做檢查;
3、可以實現(xiàn)一些高級操作,如級聯(lián)更新和級聯(lián)刪除等,這也正是外鍵帶來的好處;
4、一些ORM框架自動為外鍵生成相應的增刪改查的對應函數(shù),方便和簡化數(shù)據(jù)庫的使用;
5、批量導入數(shù)據(jù)時自動會檢查,但要注意表的引用關系和導入的先后順序,如果有循環(huán)引用或自指,要先停掉約束檢查,這是外鍵帶來的不方便的副作用。
至于題主說的沒外鍵也能按一定條件查到數(shù)據(jù),這沒有什么好奇怪的吧,只要是合乎sql的語法,什么條件數(shù)據(jù)庫都會接受,不管在業(yè)務邏輯上是否存在合理性。正如題主的例子,user.id=product.id也沒什么可怕的,如果能給個解釋的話...
一般來說是連表快一點,但是要注意的是連表的索引要做好,不然數(shù)據(jù)量一大反而會比循環(huán)查詢慢
請把應用中的MySQL連接字符串貼出來
聯(lián)表查詢盡量少用
in 也很吃資源 少用
不動表結構的話優(yōu)化起來很困難啊
/^(\d+\.{1})/
確認下mysql服務有沒有啟動
Windows:
開始--運行--輸入"services.msc"--Mysql--右鍵"啟動"
Mac:
系統(tǒng)設置--MySQL--開啟Server
因為InnoDB其他方面的優(yōu)點可以完全碾壓MyISAM,比如崩潰恢復快,支持事務,支持行級鎖,支持真正的熱備份等等。多了這么多功能當然更耗資源羅
可以看看這本書 https://segmentfault.com/a/11...;
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。