本篇內容介紹了“Mysql基礎設計思路有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1、定長和不定長要區分開
2、不常用的列和常用的列分開存
3、增加冗余,反范式化
4、btree索引,就是用樹形結構存儲在磁盤上,其中操作是用2分發,找一個中間點,然后把大比這個大的分在一邊,小的放在一邊,然后當你查詢的時候,從數字頭開始,大小分開找,這個適合區間查找,不適合一個一個找
5、hash索引,就是當你存儲在硬盤的數據,先給你一個地址,然后你下次來找的時候直接用那個地址找到那個值,這個適合一個值的查找,不適合區間查詢,比如where id=1這種
6、(1)limit 的優化,能用業務邏輯解決的就用業務邏輯解決(比如百度的搜索只是顯示76頁)
(2)往索引上靠,比如id>1100這種,你用到了id的hash主鍵索引(默認)
(3)inner join
7、數據庫的索引都是以二叉樹進行儲存的,聚簇索引其實就是樹的節點下面包含了這個節點的其他數據項,但是非聚簇索引只是一個標記,然后還要回行到磁盤去找到相應的數據項值,還要聚簇索引的二級索引只是一種引用,也就是二級索引下面存儲的是一級索引的id,然后二級索引通過id去樹上找到相應的數據項。
非聚簇索引比如myisam存儲引擎,索引和數據是存在不同的地方。找找到索引然后再找到數據.
聚簇索引就是那個存儲數據的節點,及包含索引,然后在索引下面還存有它相應的其他數據---innodb
8、索引會占據很大的磁盤空間,然后數據的變更也會操作索引
9、組合索引的核心思想是左半邊原則,當你的最后一個條件產生like這種之后就會導致后面的用不到
select * from test where id = 1 and name = "aa" and text like "%sss" and desc = "1";
就會導致你后面的desc就用不到了索引
10、hash的思想是跳出時間和空間復雜度,但是它需要一個散列度好的函數,空隙正好,然后還不能沖突
11、innodb即使你插入的數據是亂序的,但是你查出來之后還是整理好的順序,因為它可以按照數的索引依次返回數據,這也是聚蔟索引的一個優勢
固態硬盤支持隨機讀取,而不用像傳統磁盤那樣按照順序轉圈的讀取
“Mysql基礎設計思路有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。