1. 程式人生 > >python高階知識點總結(一)

python高階知識點總結(一)

一、什麼是檢視?
-- 通俗的講,檢視就是一條SELECT語句執行後返回的結果集。
-- 所以我們在建立檢視的時候,主要的工作就落在建立這條SQL查詢語句上。

-- 檢視的特點
-- 檢視是對若干張基本表的引用,一張虛表,查詢語句執行的結果,
-- 不儲存具體的資料(基本表資料發生了改變,檢視也會跟著改變);

-- 檢視的最主要的作用
-- 如果資料庫因為需求等原因發生了改變,為了保證查詢出來的資料與之前相同,
-- 則需要在多個地方進行修改,維護起來非常麻煩,這個時候使用檢視就可解決這個問題

-- 檢視的定義方式
-- create view 檢視名稱(一般使用v開頭) as select語句;


create view v_students as (select * from students inner join classes on students.cls_id = classes.id);

--具體場景使用
-- 解決資料庫發生改變 python程式也需要改變的問題
-- 刪除檢視
-- drop view ;
drop view v_students;
-- 注意
-- 檢視只能用於查詢
-- 檢視作用總結
-- 1 提高了重用性,就像一個函式
-- 2 對資料庫重構,卻不影響已經編寫好的程式執行
-- 3 提高了安全效能,可以對不同的使用者
-- 4 讓資料更加清爽

-- 檢視最主要解決的問題 

-- 程式對資料庫操作,一旦資料庫發生變化,程式需要修改,這時如果使用檢視就可以解決這個問題

二、事物

-- 事物(ACID)

-- 原子性 一致性
第一步 開啟 終端1 終端2
第二步 終端1 開啟事物 begin
   終端1 update 表名 set 欄位="xxx" where ...;
   終端1 select * from 表名;  發現數據改變
第三步 終端2 select * from 表名;  
   發現數據其實並沒有改變 其實這個時候對資料的相關操作資訊存在快取中,
   當commit之後,這些操作才會一次性的完成
第四步 終端1 commit 資料數資料真的改變
   終端2 select * from 表名,資料改變了

-- 隔離性
第一步 開啟 終端1 終端2
第二步 終端1 開啟事物 begin
   終端1 update 表名 set 欄位="xxx" where ...;
第三步 終端2 update 表名 set 欄位="yyy" where ...;
   發現 處於阻塞狀態 
第四步 終端1 commit
   終端2 阻塞狀態解除 資料修改成 yyy
   
-- 回滾(rollback)
第一步 開啟 終端1 begin
第二步 終端1 update 表名 set 欄位="xxx" where ...;
第三步 rollback 資料返回最開始的原始值

-- 永續性
-- 一旦事務提交,則其所做的修改會永久儲存到資料庫

-- 注意 
-- innodb能使用事物
-- 使用python操作資料庫的時候 預設開啟事物的 
-- 但是python對資料庫進行增刪改的時候 需要手動commit

-- 使用終端操作資料庫(也就是mysql的客戶端)的時候 也是預設開始事物的
-- 只是在回車確認操作的時候 終端會預設的commit 所以我們不需要commit

-- 事物最主要解決的問題

-- 某些事情需要一次性完成 中途不允許出現中斷 例如銀行取錢 事物可以解決這種問題

三、索引

-- 索引
-- 注意
-- 要注意的是,建立太多的索引將會影響更新和插入的速度,因為它需要同樣更新每個索引檔案。
-- 對於一個經常需要更新和插入的表格,就沒有必要為一個很少使用的where字句單獨建立索引了,
-- 對於比較小的表,排序的開銷不會很大,也沒有必要建立另外的索引。


-- 建立索引會佔用磁碟空間




-- 索引最主要解決的問題
-- 當資料非常龐大時,並且這些資料不需要經常修改,為了加快查詢速度,我們會使用索引

-- 建立一張表
create table test_index(title varchar(10));
-- python插入10條資料




--測試步驟
1. 開啟執行時間監測:
set profiling=1;
2. 查詢第1萬條資料ha-99999
select * from test_index where title='ha-99999';
3. 檢視執行的時間:
show profiles;
4. 為表title_index的title列建立索引:
create index 索引名稱 on 表名(欄位名稱)

create index my_index on test_index(title);
5. 執行查詢語句:
select * from test_index where title='ha-99999';
6. 再次檢視執行的時間
show profiles;


drop index myindex on test_index;

相關推薦

python高階知識點總結

一、什麼是檢視?-- 通俗的講,檢視就是一條SELECT語句執行後返回的結果集。-- 所以我們在建立檢視的時候,主要的工作就落在建立這條SQL查詢語句上。-- 檢視的特點-- 檢視是對若干張基本表的引用,一張虛表,查詢語句執行的結果,-- 不儲存具體的資料(基本表資料發生了改

react native 知識點總結

修改 ltp 組件 改變 set 覆蓋 sta 一個 個數 一、關於react native 版本的升級 參照文檔:http://reactnative.cn/docs/0.45/upgrading.html react-native -v

python初步——基礎總結

python 自動化運維一. 第一個HelloWorld 1. 在linux 執行 (python2.7)[[email protected]/* */ ~]# vim test.py #!/usr/bin/env python

Mybatis核心知識點總結

nfa 邏輯 efault Go 不常用 pojo code ive 圖片 一、初識Mybatis框架   mybatis是一個持久層的框架,是apache下的頂級項目。   mybatis托管到goolecode下,再後來托管到github下(https://github

python爬蟲知識點總結PyQuery詳解

get 初始化 span 2個 查看 sel docs lin query 官方學習文檔:http://pyquery.readthedocs.io/en/latest/api.html 一、什麽是PyQuery? 答:強大有靈活的網頁解析庫,模仿jQuery實現。如果你覺

python爬蟲知識點總結Requests+正則表達式爬取貓眼電影

bsp code item 代碼 proc action none width auth 一、爬取流程 二、代碼演示 #-*- coding: UTF-8 -*- #_author:AlexCthon #mail:[email protected] #date:20

[學習總結] python語言學習總結

用py也很久了,很多東西只知道拿來用,並沒有深究,感覺這樣是不夠的。 我決定寫這麼一篇總結,把很多遺忘的東西拾起來,把很多沒搞懂的東西搞清楚。 1.eval函式 用法:eval(expression, globals=None, locals=None) 解釋:將字串str當成有效的表

python基礎知識總結

字母 內容 查看 二進制 代碼 大寫字母 del 源碼 解決 一。python版本區別 宏觀上python2與python3的區別: python2:源碼不標準,混亂,重復的代碼太多,默認編碼方式是ascill碼。 python3:

Android知識點總結

1、android:layout_weight 屬性的意義 1、權重的值指的是每個部件所佔剩餘空間的大小,該值與同級部件所佔空間大小有關。 2、例如,我們定義一個權重為 2 的 View,另一個 View 的權重是 1,那麼總數就是 3;這時第一個 View 佔據 2/3 的空間,第二個佔據

關於javaweb的“網上書店”專案知識點總結

這是本人第一次寫部落格,主要記錄用java作專案的一些技術點,方便自己日後回憶。 本次java專案是傳智播客的“網上書店”專案,用的架構是 jsp + servlet +javabean,這個專案是本人的第一個專案。 以下是自己在做專案的過程中自己覺得需要注意的知識點: 一、request.

dubbo實用知識點總結

1. dubbo基礎架構 架構 特性 服務提供者 服務消費者 配置可以用dubbo.properties來替換 2. 註解配置 提供方(注意:serivce註解是dubbo的service) 消費者 3. API 服務提供者 服務消費者

Hadoop知識點總結

HADOOP hadoop的概念 Hadoop是一個由Apache基金會所開發的分散式系統基礎架構。使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。 它主要有以下幾個優點: 高可靠性:Hadoop按位儲存和處理

IOS 知識點總結

###IOS執行緒講解 對於單核的處理器,可以把多個操作放到不同的執行緒,當用戶操作完UI之後其他後續任務在其他執行緒操作,當CPU空閒時繼續其他操作; 對於多核操作,操作任務可以分散到多個空閒的CPU中繼續執行; 一個核(CPU)可以有多個執行緒,但其實

python基礎語法總結-- python型別轉換函式+檔案讀寫

python常用系統函式方法與模組 python基礎語法總結(一)-- python型別轉換函式+檔案讀寫 python基礎語法總結(二)-- 函式function python基礎語法總結(三)-- 數與字串 python基礎語法總結(四)-- list列表

[學習筆記]菜鳥教程Swift知識點總結

目錄基本語法資料型別變數、常量可選型別字面量運算子 基本語法 Swift 的多行註釋可以巢狀在其他多行註釋內部。寫法是在一個多行註釋塊內插入另一個多行註釋。第二個註釋塊封閉時,後面仍然接著第一個註釋塊

Javascript知識點總結

詞法結構 1、Javascript是一種區分大小的弱型別語言 2、識別符號和保留字 識別符號:變數的名字。規則:可由字母、數字、下劃線和$組成,數字不能開頭 關鍵字:Javascript語言中本身使用的名字 常見的有 var、i

Java SE基礎知識點總結

沒辦法了,從頭學起。不過還是要告誡自己戒驕戒躁,沉住氣,一步一步來,打好地基才是蓋高樓最好的捷徑!又是一部長篇連載,遂分享出來,與君共享~ 編譯、執行java程式需要經過哪些主要步驟? 編寫原始碼

C/C++面試知識點總結

目錄: 一、基礎知識     1.C/C++     2.STL     6.資料庫 一、基礎知識 1.C/C++ (1).struct大小的確定 由於記憶體對齊的原則,在32位機器上,記憶體是4位元組對齊,也就是說,不

for迴圈知識點總結

C++的for迴圈語句格式: for (initialization; test-expression; update-expression) body 1、關鍵字for與括號通常要有空格,函式名與括號之間通常省略空格。 2、迴圈步驟 1)設定初始值。C++中括號內初始化部

前端知識點總結盒子模型你是怎麼理解的?

從今天開始打算陸陸續續寫一些前端方面的知識點總結,也方便自己鞏固和複習。如果有人能看見還幫助了你,那也是極好的hhhh。分析與解答:1.盒子模型有兩種,W3C的標盒模型和IE的怪異盒模型(1)W3C定義的標準盒模型包括margin、border、padding、content