分庫分表后如何統(tǒng)計查詢 在股票賣出時,賣1000,賣成功后查詢,為什么被分成了幾次賣出?
在股票賣出時,賣1000,賣成功后查詢,為什么被分成了幾次賣出?這與股票的交易方式有關(guān)。股票交易以撮合的方式進(jìn)行。根據(jù)買賣雙方的出價進(jìn)行配對。如果雙方的交易價格相同,雙方將達(dá)成交易。如果雙方價格相同,
在股票賣出時,賣1000,賣成功后查詢,為什么被分成了幾次賣出?
這與股票的交易方式有關(guān)。股票交易以撮合的方式進(jìn)行。根據(jù)買賣雙方的出價進(jìn)行配對。如果雙方的交易價格相同,雙方將達(dá)成交易。
如果雙方價格相同,但沒有就交易份額達(dá)成協(xié)議,則交易將根據(jù)訂單的訂單部分完成。此時,批量銷售將出現(xiàn)在交易軟件中。
目前A股的交易規(guī)則是以個人申報為主,交易所根據(jù)雙方申報的名單進(jìn)行匹配交易。你什么意思?
下單時,我們將輸入四個信息:股票代碼、交易方向、股票數(shù)量和交易價格。在這四條消息中,交易所根據(jù)下訂單的時間有另一個時間標(biāo)簽。
這樣,同一只股票上將有四條消息:
買入/賣出方向、股票數(shù)量、傭金價格和時間。
交換如何匹配?
首先,買賣順序要分開。
第二步是根據(jù)價格對各個方向的訂單進(jìn)行排序。購買價格從高到低排列,從買一、買二、買三。賣家按價格從低到高排列,從賣一、賣二、賣三。
第三步是根據(jù)訂購順序確定每個價格。
交易最小單位。
例如,10點賣出一張的價格是10,委托一張10000股的賣出單。上午10點01分,買傭金的順序是10元買500股。隨后,500股以10元的價格成交。2分鐘后,又出現(xiàn)了10元買入1000股的指令,雙方各成交1000股。在交易結(jié)束時,會發(fā)現(xiàn)1萬張訂單在交易完成前可能被分成10多筆交易。
當(dāng)然,您不必?fù)?dān)心傭金。證券公司收取的傭金是根據(jù)傭金單的情況收取的,與最終交易無關(guān)。
mysql表數(shù)據(jù)量太大,達(dá)到了1億多條數(shù)據(jù),除了分庫分表之外,還有沒有其他的解決方式?
在正常配置下,MySQL只能承載2000萬數(shù)據(jù)(同時讀寫,表中有大文本字段,單服務(wù)器)?,F(xiàn)在已經(jīng)超過1億,而且還在增加,建議按以下方式處理:
1子表。它可以按時間或一定的規(guī)則進(jìn)行拆分,以便盡可能地查詢子表中的數(shù)據(jù)庫。這是最有效的方法。特別是寫,放入一個新表,并定期同步。如果記錄不斷更新,最好將寫入的數(shù)據(jù)放在redis中,并定期同步表3的大文本字段,將它們分隔成一個新的獨立表。對于較大的文本字段,可以使用NoSQL數(shù)據(jù)庫
4優(yōu)化體系結(jié)構(gòu),或者優(yōu)化SQL查詢,避免聯(lián)合表查詢,盡量不要使用count(*)、in、recursion等性能消耗語句
5使用內(nèi)存緩存,或者在前端讀取時增加緩存數(shù)據(jù)庫。重復(fù)讀取時,直接從緩存中讀取。
以上是一種低成本的管理方法,基本上幾個服務(wù)器就可以做到,但是管理起來有點麻煩。
當(dāng)然,如果總體數(shù)據(jù)量特別大,并且您不關(guān)心投資成本,請使用集群或tidb