1、組合索引問題,失效問題
1.組合索引多字段是有序的,并且是個完整的BTree 索引,有最左原則
多列索引是先按照第一列進行排序,然后在第一列排好序的基礎(chǔ)上再對第二列排序,如果沒有第一列的話,直接訪問第二列,那第二列肯定是無序的,直接訪問后面的列就用不到索引了。
搜索需要從根節(jié)點出發(fā),上層節(jié)點對應靠左的值,搜索需要從根節(jié)點出發(fā),否則不從根節(jié)點出發(fā),后面的節(jié)點對應下層的值,依舊是亂序的,需要遍歷,所以索引就失效了,所以有最左原則。 2.組合索引的使用:
例如組合索引(a,b,c),組合索引的生效原則是
從前往后依次使用生效,如果中間某個索引沒有使用,那么斷點前面的索引部分起作用,斷點后面的索引沒有起作用;
2、simpleDateFormat 為啥線程不安全
通過 DateFormat 類中的注釋可知:此處 Calendar 實例被用來進行日期-時間計算,既被用于 format 方法也被用于 parse 方法!
在 parse 方法的最后,會調(diào)用 CalendarBuilder 的 establish 方法,入?yún)⒕褪?SimpleDateFormat 維護的 Calendar 實例,在 establish 方法中會調(diào)用 calendar 的 clear 方法,如下:
[圖片上傳失敗...(image-f1af5b-1589874591459)]
可知 SimpleDateFormat 維護的用于 format 和 parse 方法計算日期-時間的 calendar 被清空了,如果此時線程 A 將 calendar 清空且沒有設(shè)置新值,線程 B 也進入 parse 方法用到了 SimpleDateFormat 對象中的 calendar 對象,此時就會產(chǎn)生線程安全問題!
————————————————
版權(quán)聲明:本文為 CSDN 博主「撒歡嘞啦」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_38810239/java/article/details/79941964