1、mysql資料庫儲存原理:
儲存的過程是乙個可程式設計的函式,在資料庫中建立並儲存,有以下優點:
1、儲存過程能實現較快的執行速度
2、儲存過程允許標準元件是程式設計。
3、儲存過程可以用流程控制語句編寫,有很強的靈活性,可以完成複雜的判斷 和較複雜的運算。
4、儲存過程可被作為一種安全機制來充分利用。
5、儲存過程能夠減少網路流量
2、事務的四大特性:
1、原子性:事務中的全部操作是乙個不可分割對的整體,要麼全部執行成功,要麼全都不執行
2、一致性:當多個事務並行時,必須按照規定的順序序列執行,保持執行後結果的一致性
3、隔離性:多個事務之間是互不影響的,執行結果對其他事務而言是透明的
4、永續性:對於已提交事務執行後的結果,必須保證該事務對資料庫的修改不被丟失
3、常用的資料庫儲存引擎:
1、myisam,不支援事務,不支援行鎖,不支援外來鍵,不支援安全恢復,支援全文索引,支援延遲更新索引,極大提公升寫入效能;支援壓縮表,減少儲存空間
2、innodb,支援行鎖,支援外來鍵,支援事務,支援安全恢復,不支援全文索引
myisam適用select密集型的表,innodb適用於寫操作密集型的表
4、關於資料庫的優化:
1、myisam適用select密集型的表,innodb適用於寫操作密集型的表
2、配置主從,讀寫分離
3、對於單錶的資料量非常大的,可以分區分表
4、優化查詢語句,避免對null值判斷,考慮對where和order_by跟的字段建立索引
5、不要使用外來鍵,由程式控制
6、先分頁在join
7、盡量不使用唯一約束,由程式控制
8、使用快取,減少資料庫的io操作
4、資料庫索引:
1、索引的建立:
在建立表的時候新增索引
create table tablename(
id int(10) primary key,
content text,
name char(10) not null,
[unique] index name_index (name(4)))engion myisam default charse utf8;
在建立表以後新增索引
alter my_table add [unique] index my_index(my_text);
create index my_index on my_table(my_text);
根據索引查詢
select * from tablename where match(content) against('word1','word2',...);
刪除索引
drop my_index on tablename;
檢視表中的索引
show index from tablename
2、索引的實現原理:
索引的實現通常使用 b_tree(平衡搜尋多叉樹)。b_tree 索引加速了數 據訪問,因為儲存引擎不會再去掃瞄整張表得到需要的資料;相反,它從根節點開始,根節點儲存了子節點的指標,儲存引擎會根據指標快速尋找資料。
3、什麼時候要使用索引?
1、主鍵自動建立唯一索引;
2、經常作為查詢條件在where或者order by 語句**現的列要建立索引;
3、作為排序的列要建立索引;
4、查詢中與其他表關聯的字段,外來鍵關係建立索引
5、高併發條件下傾向組合索引;
4、什麼時候不要使用索引?
1、經常增刪改的列不要建立索引;
2、有大量重複的列不建立索引;
3、表記錄太少不要建立索引;
redis的用法:
1、用作快取,減少資料庫的i/o操作
2、利用set型別去重,
3、當做佇列使用,如celery,分布式爬蟲
4、**排行榜
5、購物車資料儲存
資料庫問題總結
我對昨晚資料庫公升級出現的問題現在總結一下 下邊是錯誤 sql0668n 原因碼為 1 所以不允許操作 sqlstate 57016 1.最根本的問題是load的問題 copy yes nonrecoverable 對於dms表空間,load預設為copy no 模式,此模式下,load完成後,表空...
MySQL資料庫亂碼問題總結
解決mysql資料庫亂碼問題總結 解決辦法 1 修改安裝檔案根目錄下的my.ini檔案 搜尋欄位default character set,設定其值為utf8 gbk之一 注意設定utf8的時候不能設成utf 8 注意 這個檔案裡不止一處要修改的,如果你把這個檔案裡default character...
資料庫連線問題的總結
對資料庫連線問題的一點總結 1.odbc,oledb,ado,adox的關係 odbc 曾經的資料庫通訊標準 oledb 在一切物件化的趨勢下,ms打算用它取代odbc.oledb分兩種 直接的oledb和面向odbc的oledb,後者架構在odbc上,這 樣沒有自己的oledb提供者的資料庫也可以...