這個表包含了110,000條記錄,只有10mb大小,所以可以全部放到記憶體中。service列有5個不同的值,平均字元長度為4個字元,method列有71個值,平均長度為20個字元。
我們複製了該錶,把service和method列轉換為enum,如下:
create table webservicecalls_enum (
... omitted ...
service enum(...values omitted...) not null,
method enum(...values omitted...) not null,
... omitted ...
) engine=innodb;
我們通過主鍵連線兩個表,並測試了效能。如下是我們的查詢語句:
mysql> select sql_no_cache count(*)
-> from webservicecalls
-> join webservicecalls using(day, account, service, method);
我們使用不同的組合來連線varchar和enum列,結果如下所示:
speed of joining varchar and enum columns
test queries per second
varchar joined to varchar 2.6
varchar joined to enum 1.7
enum joined to varchar 1.8
enum joined to enum 3.5
未完,待續......
使用列舉enum來代替if else
在平時的 中,if else肯定是必不可少,但是有時使用if else卻不是 的最好選擇,下面介紹下平時會在實際工作 中使用到的用enum來代替if else的寫法.現在有個需求,我們公司有vip等級,1,2,3,根據等級高低,能獲取不同的優惠資訊,最簡單也最容易想到的 是 獲取折扣資訊 publi...
字串A中出現B時就用C來代替
這個問題的重點是不使用stl c語言的動態分配記憶體 cstring庫中的函式 該演算法使用的格外空間大小 o nanb 沒有改變p a,p b,p c所指向的值,輸出的結果儲存在動態分配的記憶體中。思路 找出a中所有b的開始位置,儲存在陣列arr b in a中,arr b in a的大小為b可能...
將字串型轉化為 Enum 列舉型別
將字串型轉化為 enum 列舉型別。例如 現在有個字串sstring,乙個列舉enumname,希望把sstring型別轉換成enumname型別格式如下 enumname enumname.parse typeof enumname sstring 例項 有乙個下拉式列表,通過選擇某項,將選擇的s...