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

mysql主從的作用:
1、數(shù)據(jù)熱備:作為后備數(shù)據(jù)庫,主數(shù)據(jù)庫服務(wù)器故障后,可切換到從數(shù)據(jù)庫繼續(xù)工作,避免數(shù)據(jù)丟失。
2、架構(gòu)的擴(kuò)展:業(yè)務(wù)量越來越大,I/O訪問頻率過高,單機(jī)無法滿足,此時做多庫的存儲,降低磁盤I/O訪問的頻率,提高單個機(jī)器的I/O性能。
3、讀寫分離使數(shù)據(jù)庫能支撐更大的并發(fā)。在報表中尤其重要。由于部分報表sql語句非常的慢,導(dǎo)致鎖表,影響前臺服務(wù)。如果前臺使用master,報表使用slave,那么報表sql將不會造成前臺鎖,保證了前臺速度。
或者 如果網(wǎng)站訪問量和并發(fā)量太大了,少量的數(shù)據(jù)庫服務(wù)器是處理不過來的,會造成網(wǎng)站訪問慢。數(shù)據(jù)寫入會造成數(shù)據(jù)表或記錄被鎖住,鎖住的意思就是其他訪問線程暫時不能讀寫要等寫入完成才能繼續(xù),這樣會影響其他用戶讀取速度。采用主從復(fù)制可以讓一些服務(wù)器專門讀,一些專門寫可以解決這個問題。

而集群則是直接增加可承載讀寫量的辦法,效果比主從好。

逗婦乳 回答

例如?
如果你是用在兩個條件下的話可以. 使用 and 或 or 組合起來.
如果你是 where col like in 這樣的話. 或者 where col in (like ...) 這樣的話,明顯不行.

網(wǎng)妓 回答

從主鍵還是索引取決于查詢條件,即where和order by后面的涉及的字段.可以用explain select xxx from your_table來看.

遺莣 回答

跟證書相關(guān)的問題。

  1. 先看看你們的服務(wù)端是否配置了證書;
  2. 看看是不是強(qiáng)制要求客戶端證書;
  3. 其次要看證書是不是自簽名的或是合法的第三方頒發(fā)的;

如果不清楚怎么看,最好問問你們配置MongoDB的人會比較清楚。

  1. 使用存儲過程生成不一樣的時間。比如
CREATE OR REPLACE FUNCTION get_random_date(start_date date, end_date date) RETURNS integer AS  
$BODY$  
DECLARE  
    interval_days integer;  
    random_days integer;  
    random_date date;  
BEGIN  
    interval_days := end_date - start_date;  
    random_days := get_random_number(0, interval_days);  
    random_date := start_date + random_days;  
    RETURN date_part('year', random_date) * 10000 + date_part('month', random_date) * 100 + date_part('day', random_date);  
END;
  1. 把不希望重復(fù)的字段設(shè)成唯一索引。然后使用insert into ... on duplicate key update ...
INSERT INTO table(column1, column2) VALUES(value1,value2) ON DUPLICATE KEY UPDATE column2 = VALUES(column2);
陌如玉 回答

undo是針對事務(wù)的,事務(wù)結(jié)束就沒有了,read view可以理解為事務(wù)開啟時記錄的快照,事務(wù)沒提交進(jìn)行回退時,按照undo回滾數(shù)據(jù),就是回滾為生成read view時的數(shù)據(jù)。

已經(jīng)關(guān)了啊,關(guān)完shell當(dāng)然連不上了提示reconnect failed.

魚梓 回答

不太了解你的具體場景, 另外假設(shè)你是 B/S

我之前的做法是, 直接生成一個js
服務(wù)端只驗證數(shù)據(jù)就可以了

我能想到的方案

保存相鄰兩級的 id的 單向 集合關(guān)系

比如

湖北省.id : [武漢市.id, 襄樊市.id, ...]
.....
武漢市.id : [洪山區(qū).id, 東湖高新區(qū).id, ...]

//省市區(qū)三個級別的話

//一共就是 34(省級行政區(qū)) + 294(地級市) 條記錄

然后驗證一個省市區(qū)串是否正確 只需要redis兩次請求

ps: 前提條件是你傳遞上來的是 省-市-區(qū) 而不是 僅僅一個 區(qū)

網(wǎng)妓 回答

電商系統(tǒng)經(jīng)常遇到的屬性變動問題

數(shù)據(jù)庫設(shè)計的時候由于未來需求經(jīng)常改變。
所以設(shè)計的時候需要把原本是列的變成行數(shù)據(jù),到時候要改列的時候通過插入行數(shù)據(jù)來實現(xiàn)。
舉個例子。

我有個手機(jī)。
名稱價格,翻蓋還是滑蓋,智能機(jī)還是非智能機(jī)等屬性。

如果按照列的設(shè)計。

那么,每個手機(jī)的值如下

ID 名稱,價格,翻蓋/滑蓋/直板,是否智能機(jī)
1,諾基亞,1000,翻蓋,否
2. 蘋果,4000,直板,是
3. 安卓,2000,直板,是

如果要增加操作系統(tǒng)字段,需要更改表結(jié)構(gòu)添加字段。

采用行設(shè)計

屬性表

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ù)即可,不需要改結(jié)構(gòu)

不同客戶之間功能不同問題

首先,程序只有一套,數(shù)據(jù)庫只有一個。

  1. 所以,客戶需要實現(xiàn)的功能,我們程序必須實現(xiàn),每個功能加到一個功能表,參照屬性表設(shè)置
  2. 然后需要開通該功能的客戶,添加一個表,參考商品屬性表,

功能

ID,功能名稱
1 廣告功能
2 可以自定義微信公眾號
...

客戶功能
客戶ID,功能名稱
1 1
1 2

做好緩存,那么我讀取到客戶1的時候會發(fā)現(xiàn)客戶1有廣告功能和微信功能,那么程序根據(jù)這個該顯示頁面的添加頁面顯示,后臺可以操作的,后臺也顯示出來

刮刮樂 回答

RewriteRule ^admin/index$ admin/index.php

這樣就對了

傻丟丟 回答

不管唯一不唯一,都加索引,反正mysql有各種鍵各種索引,直接加個普通的索引就好了,另外,就算沒有索引,這么點數(shù)據(jù)應(yīng)該也不至于這么慢吧。

柚稚 回答

你就簡單理解為export是導(dǎo)出一個變量,而不是導(dǎo)出它的值。外面的程序使用這個變量訪問到它導(dǎo)出的值。

var m = 1;
export m;

之所以這句是錯的,是因為它導(dǎo)出的是m的值,而不是m。

不將就 回答
pymysql.connect(host='localhost',user='user',password='passwd',db='db',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)

password參數(shù)名錯誤,請按照文檔來寫http://pymysql.readthedocs.io...

久礙你 回答

使用字段數(shù)組長度條件滿足了需求

db.data.find( { test: { $size: 1 } } )
掛念你 回答

@media媒體查詢,F(xiàn)ilter在css3中是一種特效,position元素定位,后邊同上

我以為 回答

sql應(yīng)該是沒啥問題,尤其是gem1不會報錯的情況下。檢查一下gem2前后是不是有空格或者換行符。

傻叼 回答

/var/log/mysqld.log: Read-only file system,不是磁盤滿了就是磁盤掛了

陌南塵 回答
  1. 通過定位設(shè)備(手機(jī)等)獲取配送員的定位數(shù)據(jù)(經(jīng)緯度)上傳到 服務(wù)器,可以使用workerman 的websocket連接通訊。
  2. 另外再起一個websoctet監(jiān)聽端口與用戶之間的通訊,將獲取到的定位數(shù)據(jù)廣播給所有連接的用戶
  3. 頁面上可以使用高德地圖,百度地圖等對外的api接入,形成一條軌跡線,點等都是可以的。

基本的過程就是這樣。