主頁 > 資料庫 > Python基礎入門

Python基礎入門

2020-09-15 11:23:09 資料庫

1.Python安裝

要檢查是否已在 Windows PC (個人電腦)上安裝了 python,請在開始欄中尋找 Python 或在命令列(cmd.exe)上運行以下命令:

python --version

沒有安裝則官網下載

https://www.python.org/

編輯Python工具vscode

https://code.visualstudio.com/

vscode安裝插件:

1,Python
2.Tabnine(代碼提示功能)
3.chinese(中文)
4.BracketPaair Colorizer (彩色對括號)
5.Better Comments(更好的注釋)

2.變數

Python與其他語言不同,它沒有宣告變數的命令,當想要使用他的時候,直接為其賦值就自動創建變數

x=10
y="li"
print(x)
print(y)

變數不需要使用任何資料型別宣告,可以在其創建后在修改資料型別

x=10
y="5"
如何修改資料型別:資料型別(x或y)

向多個變數賦值

x=y=z="Orange"

輸出變數

print("a"+"b"):字串  +  輸出 是將字串鏈接輸出
print(5+5):數值型 + 輸出 將兩個數值相加

global關鍵字

在函式里面創建全域變數  x
def myfunc():
 global x
 x="fanta"
myfunc()
print(x)

3.資料型別

文本型別:str
資料型別 int(整形),float(浮點型)
布爾型別bool Ture(真),flase(假)

獲取資料型別方法

print(type(x))

字串多行賦值

a="""Python is a widely used general-purpose, high level programming language. 
It was initially designed by Guido van Rossum in 1991 
and developed by Python Software Foundation"""
print(a)

3.1處理字串方法

字串也是陣列

a="Hello,World"
print(a[0]) #獲取字符第一個

裁切字串

a="Hello,World"
print(a[2:5]) #正序第三位裁切到第五位

反裁切字串

a="Hello,World"
print(a[-5:-2]) #負序末尾開始倒數第五開始到倒數第二

len()函式回傳字串的長度

a="Hello,World"
print(len(a)) #多數用于當作 回圈范圍

strip()方法洗掉開頭和結尾的空白字符

a=" Hello,World! "
print(a.strip())

lower()回傳小寫的字串

a="Hello,World!"
print(a.lower())

upper()方法回傳大寫的字串

a="Hello,World!"
print(a.upper())

replace()用另一段字串來替換字串

a = "HELLO,World"
print(a.replace("HELLO", "12345"))

split()方法在找到分隔符的實體時將字串拆分成子字串可循下標

a = "asd/sadcvs/sd/asd/v/s"
print(a.split("/")[0])

檢查文本是否存在該字串(必須是鄰近字串)(也可使用and 相隔查找)

in(遍歷所有該元素 存在回傳True) 一對多

a = "sdjioasd"
x = "io" in a
print(x)

檢查文本是否不存在該字串

not 不存在

not in 該集合都不存在

is (一對一判斷是否相等)

is not (判斷一對一是否不相等)

a = "dsijdal"
x = "k" not in a
print(x)

通過索引獲取該字串的資訊

a = "dsijdal"
l = int(input())
for b in a:
    if a.index(b) == l:
        index = a.index(b)
        print(a[a.index(b)])

使用 format()方法將數字插入字串中

age = 63
txt = "My name is Bill,and I am {}"
print(txt.format(age))

多次插入: 也可根據format 索引不按順序放置
quantity = 3
itemno = 567
price = 49.95
myorder = "I want {2} pieces of item {1} for {0} dollars."
print(myorder.format(quantity, itemno, price))

3.2沒有實體的字串方法

字串方法
Python 有一組可以在字串上使用的內建方法,

注釋:所有字串方法都回傳新值,它們不會更改原始字串,

方法	          描述
capitalize()	把首字符轉換為大寫,
casefold()	    把字串轉換為小寫,
center()		回傳居中的字串,
count()	         回傳指定值在字串中出現的次數,
encode()		回傳字串的編碼版本,
endswith()		如果字串以指定值結尾,則回傳 true,
expandtabs()	設定字串的 tab 尺寸,
find()			在字串中搜索指定的值并回傳它被找到的位置,
format()		格式化字串中的指定值,
format_map()	格式化字串中的指定值,
index()			在字串中搜索指定的值并回傳它被找到的位置,
isalnum()		如果字串中的所有字符都是字母數字,則回傳 True,
isalpha()		如果字串中的所有字符都在字母表中,則回傳 True,
isdecimal()		如果字串中的所有字符都是小數,則回傳 True,
isdigit()		如果字串中的所有字符都是數字,則回傳 True,
isidentifier()	如果字串是識別符號,則回傳 True,
islower()		如果字串中的所有字符都是小寫,則回傳 True,
isnumeric()		如果字串中的所有字符都是數,則回傳 True,
isprintable()	如果字串中的所有字符都是可列印的,則回傳 True,
    isspace()	如果字串中的所有字符都是空白字符,則回傳 True,
istitle()		如果字串遵循標題規則,則回傳 True,
isupper()		如果字串中的所有字符都是大寫,則回傳 True,
join()			把可迭代物件的元素連接到字串的末尾,
ljust()			回傳字串的左對齊版本,
lower()			把字串轉換為小寫,
lstrip()		回傳字串的左修剪版本,
maketrans()		回傳在轉換中使用的轉換表,
partition()		回傳元組,其中的字串被分為三部分,
replace()		回傳字串,其中指定的值被替換為指定的值,
rfind()			在字串中搜索指定的值,并回傳它被找到的最后位置,
rindex()		在字串中搜索指定的值,并回傳它被找到的最后位置,
rjust()			回傳字串的右對齊版本,
rpartition()	回傳元組,其中字串分為三部分,
rsplit()		在指定的分隔符處拆分字串,并回傳串列,
rstrip()		回傳字串的右邊修剪版本,
split()			在指定的分隔符處拆分字串,并回傳串列,
splitlines()	在換行符處拆分字串并回傳串列,
startswith()	如果以指定值開頭的字串,則回傳 true,
strip()			回傳字串的剪裁版本,
swapcase()		切換大小寫,小寫成為大寫,反之亦然,
title()			把每個單詞的首字符轉換為大寫,
translate()		回傳被轉換的字串,
upper()			把字串轉換為大寫,
zfill()			在字串的開頭填充指定數量的 0 值,

3.3布爾型別

如果有某種內容,則幾乎都將True,

(空值,0,空串列,空元組,空字典,空集合)為false

bool(False)
bool(None)
bool(0)
bool("")
bool(())
bool([])
bool({})

查看物件是否是整數 函式 isinstance()

x=200
print()

4.集合(陣列)

4.1串列(List)

一種有序和可更改的集合.允許重復的成員

創建串列(Python 不限制資料型別存放)

thislist = ["apple", "red", "cheryy", 15]
print(thislist)

訪問專案(通過索引獲取單獨串列資訊)

thislist = ["apple", "red", "cheryy", 15]
print(thislist[0])

負索引(- 從最后一位開始遍歷)

thislist = ["apple", "red", "cheryy", 15]
print(thislist[-1])

回傳多個串列元素

thislist = ["apple", "red", "cheryy", 15]
print(thislist[0:3])

負索引回傳多個串列元素(回傳 倒數第二元素和倒數第三)

thislist = ["apple", "red", "cheryy", 15]
print(thislist[-3:-1])

逐個打開串列中的所有專案

thislist = ["apple", "red", "cheryy", 15]
for x in thislist:
	print(x)

檢查資料型別相同的串列的是否存在該元素

thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
    print("存在該元素")
else:
    print("不存在")

指定型別查找

thislist = ["apple", "banana", "cherry",15]
for x in thislist:
    if type(x) == str and x == "apple":
        print(x)

回傳串列長度/數量

thislist = ["apple", "banana", "cherry", 15]
print(len(thislist))

添加元素

a = [1, 56, 4321, 5, 43, 15, 65, 32, 15]
a.append(2)
print(a)

插入元素(插入正序二個位置)

a = [1, 56, 4321, 5, 43, 15, 65, 32, 15]
a.insert(1, 15)
print(a)

洗掉元素

a = [1, 56, 4321, 5, 43, 15, 65, 32, 15]
a.remove(15)
print(a)

洗掉索引

a = ["apple", "banana", "cherry"]
del a[0]
print(thislist)

復制串列

a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]
a1 = a.copy()
print(a1)

合并串列

list1 = ["a", "b", "c", "d"]
list2 = [1, 2, 3, 4]
list3 = list1 + list2
print(list3)

sort() 排序函式

不支持非整形排序

[a = [1, 3, 5, 8, 4, 12, 0, 8, 10, 9]]()

a.sort()

print(a)

sorted():根據字典關鍵字_串列排序

sorted() 根據字典 整形元素 對串列中的字典排序 True為降序 false為升序

key=lambda:隱函式(固定寫法)

keys:keys(臨時起的名字_隨意寫)

[“a”]關鍵字索引

reverse=False 升序, True_降序

list = [{"a": 1}, {"a": 4}, {"a": 3}, {"a": 2}]

a = sorted(list, key=lambda keys: keys["a"], reverse=False)
print(a)#輸出全部串列
print(min(list, key=lambda x: x["a"])) #輸出串列最小值

也可對串列直接排序

reverse=False 升序, True_降序

a = [1, 3, 5, 4, 12, 0, 8, 10, 9]
b = sorted(a, reverse=False)
print(b) 

count 函式 計數

查找指定元素出先次數

b = "asdsadwd"
print(b.count("a"))

index()函式

回傳索引 串列同理

b = "asdsadwd"
print(b.index("s"))

根據輸入的關鍵字回傳索引

for 字典 in 串列:
 if  字典[關鍵字]==input()
 	index=串列.index(字典)

print()輸出格式

foramt()

print("x:{},x:{},x:{}".format(dict["x"],dict["x"],dict["x"]))

獲取values 轉換tuple(元組)

for 字典 in 串列:
	va=tuple(字典.values)
	print("x:%s,x:%d,x:%.f" % va)

end關鍵字

將結果輸出到同一行

print(x,end=",")

4.2元組(tuple)

元組是有序且不可改變的集合.在Python中,元組是用圓括號撰寫的

實體

創建元組

thistuple=("apple","banna","cherry")

print(thistuple)

洗掉元組

可以洗掉元組,不可以洗掉元組的專案

thistuple=("apple","banna","cherry")
del thistuple

回傳元組最大元素 max()

tuple1=(1,25,3,4)
max(tuple1)

回傳元組最小元素 min()

tuple1=(2,12,13,5)
min(tuple1)

串列轉換元組

list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
 tuple1=tuple(list1)
  tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')

4.3集合(set)

集合是無序和無索引的集合,在Python中,集合用大括號撰寫.

創建集合

thisset={"apple","banana","cherry"}
print(thisset)
或
set(value)

無法通過索引訪問 set 元素 因為set 無序沒有索引

但是可以使用for 遍歷回圈 set 或使用 in 查詢集合是否存在該數值

for 遍歷回圈
thisset={"apple","banana","cherry"}
for x in thisset:
	print(x)
in 查找
thisset={"apple","banana","cherry"}
print("banana" in thisset) #回傳 True

添加元素,添加多個元素

add()添加單個元素

update()添加多個元素

thisset={"apple","banana","cherry"}
thisset.add("ors")
thisset.update("a","b","c")
print(thisset)

洗掉元素 remove

thisset={"apple","banana","cherry"}
thisset.remove("apple")

合并集合 union()

合并后 元素是混亂的 排除重復項

set1={"a","b","c"}
set2={1,2,3}
set3=set1.union(set2)
print(set3)

運算集合

集合a 包含而集合b 不含的元素

a = set("asdqwdts")
b = set("esdqwdes")
print(a-b)

集合a或b中包含的所有元素

a = set("asdqwdts")
b = set("esdqwdes")
print(a | b)

集合a和b中都包含了的元素

a = set("asdqwdts")
b = set("esdqwdes")
print(a & b)

不同時包含于a和b的元素

a = set("asdfgt")
b = set("qweryt")
print(a ^ b)

4.4字典

字典是一種無序,可變的和有索引的集合.在Python中,字典用大括號撰寫,擁有鍵和值

創建字典

thisdict = {
    "a": 1,
    "b": 2,
    "c": 3
}
print(thisdict)

通過字典鍵獲取值

thisdict = {
    "a": 1,
    "b": 2,
    "c": 3
}
print(thisdict["a"])

查詢字典鍵更改字典值

thisdict = {
    "a": 1,
    "b": 2,
    "c": 3
}
thisdict["a"] = 20
print(thisdict["a"])

update()插入一個鍵值

thisdict = {"a": 1, "b": 2, "c": 3}
thisdict.update({"d": 4})
print(thisdict)

查詢字典中的所有鍵

thisdict={
	"a":1
	"b":2
	"c":3
}
for i in thisdict:
	print(i)

查詢字典中所有的值

thisdict={
	"a":1
	"b":2
	"c":3
}
for i in thisdict:
    print(thisdict[i])

values ()遍歷字典所有值

thisdict={
	"a":1
	"b":2
	"c":3
}
for i in thisdict.values():
    print(i)

items() 遍歷字典所有鍵值

thisdict={
	"a":1
	"b":2
	"c":3
}
for x, y in thisdict.items():
    print(x, y)

為字典添加新的元素

thisdict={
	"a":1
	"b":2
	"c":3
}
thisdict["d"] = 4
for x, y in thisdict.items():
    print(x, y)

嵌套字典

thisdict = {"a": {"a": 1, "b": 2},
            "b": {"c": 1, "d": 2},
            "c": {"e": 1, "f": 2}}
print(thisdict)

5.if,else的使用

if陳述句

滿足條件會繼續執行下去

a = 66
b = 77
if b > a:
    print("通過")

elif 陳述句(分支) 輸入的滿足那個條件

執行那個if 下面的print

a = int(input("輸入:"))
if 80 <= a <= 100:
    print("A")
elif 60 <= a <= 79:
    print("B")

else 陳述句

不滿足所有if 時 執行

a = int(input("輸入:"))
if 80 <= a <= 100:
    print("A")
elif 60 <= a <= 79:
    print("B")
elif 60 > a:
    print("C")
else:
    print("輸入錯誤")

or 關鍵字

滿足 if 所有條件中的一個

a = int(input("輸入:"))
if a == 1 or a == 2 or a == 3 or a == 8:
    print("正確")
else:
    print("錯誤")

and 關鍵字

滿足if所有 條件

a = int(input("輸入:"))
b = int(input("輸入2:"))
if a == 1 and b == 2:
    print("正確")
else:
    print("錯誤")

6.while 和 for 回圈

break 陳述句

如果使用break陳述句 即使 while 條件為真也可以停止回圈

找到就不繼續往下回圈了

fruits = ["apple", "banana", "cherry"]
for x in fruits:
    if x == "banana":
        break
    print("找到了")

continue陳述句

通過continue陳述句,我們可以停止回圈的當前迭代,并繼續下一個:

跳過banana

fruits = ["apple", "banana", "cherry"]
for x in fruits:
    if x == "banana":
        continue
    print(x)

while回圈

如果while回圈條件為真,我們就可以執行繼續執行陳述句為假停止

回圈1到6

i = 1
while i < 7:
    print(i)
    i += 1

也可以在使用input的時候 開始條件為假,為真以后在執行下面的操作

a = int(input())
while a != 7:
    a = int(input("重新輸入"))
print(a)

for 回圈_ range()函式

如果我們需要指定代碼回圈一定次數,可以使用range()函式

默認0開始
for x in range(10):
	print(x)


默認1開始,10結束(不包括10)
for x in range(1, 10):
    print(x)


(起始5 ,結束100,遞增 3
for x in range(5, 100, 3):
  print(x)

for嵌套

第一個for 0-9

第二for 0-9 回圈9次

for x in range(10):
    for j in range(10):
        print(j, end=" ")
    print(" ")

7.函式

函式是一種僅在呼叫時運行的代碼快

也可以將資料成為引數傳遞到函式中.

函式可以把資料作為結果回傳

創建函式

def my_function():
	print("Hello world")
呼叫函式
my_function()

引數

資訊可以作為引數傳遞給函式

引數在函式名后的括號內指定.可以添加任意數量的引數,用逗號分隔

帶引數的函式(必須按照引數順序,傳遞引數)

def my_function(a,b):
	print(a+b)
my_function(5,6)

不需要按照引數順序 傳遞引數

def my_function(a,b):
	print(a+b)
my_function(b=6,a=5)

設定默認引數

設定的默認引數必須放在最后

def my_function(b, a=5):
    print(a+b)
my_function(6)

以串列(list)作為引數

def my_function(a):
    for x in a:
        print(x)
fruits = [1, 2, 3, "a"]
my_function(fruits)

不定長引數

當需要一個函式處理比當初宣告更多的引數時.這樣的引數叫做不定長引數

宣告時不會命名 加*的引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數

def my_function(b, *a):
    print(b)
    print(a)
my_function(50, 60, 72)

for 輸出引數元組

def my_function(b, *a):
    print(b)
    print(a)
    for i in a:
        print(i)
    return 
my_function(50, 60, 72)

加**的引數會以字典的形式匯入.

def dict1(**a):

	print(a)

dict1(商品名稱="洗衣服", 商品單價=25, 商品型別="家用") 

傳遞的字典存放串列 并且去除None值

list1 = []
def dict1(**a):
    list1.append(a)
list1.append(dict1(商品名稱="洗衣服", 商品單價=25, 商品型別="家用"))
print(list1)
asd = list(filter(None, list1))
print(asd)

回傳值

return陳述句

def my_function(x,y):
	return x*y
print(my_function(5,6))

lambda 函式

sum= lambda a,b:a+b
print(sum(5,5))

遍歷串列

list = [{"a": 1}, {"a": 4}, {"a": 3}, {"a": 2}]
a=lambda s:s
print(a(list), end='\n')

8.模塊

創建模塊

創建一個 mymodule.py 的檔案
然后在寫一個函式
def greeting(a,b):
  print(a+b)
 mylist = [1, 2, 34, 5]

呼叫模塊

經過上面的創建 我們就可以在別的py檔案呼叫 這個模塊了

import mymodule
mymodule.greeting(5, 6)

呼叫串列

模塊 還可以呼叫py檔案里面的 陣列、字典、物件等

import mymodule
a = mymodule.mylist
print(a)

命名模塊

可以as 縮寫模塊名字 方便自己認識

import mymodule as my
my.greeting(5,6)

內建模塊與下載模塊

python 3 中

內建模塊: 直接 import 呼叫 不用創建 是python自帶的

下載模塊:當python自帶功能 滿足不了自己的需求時 可以下載模塊

pip install 模塊名字

from…import 陳述句

匯入指定一部分

from mymodule import fib, fib2
fib(100)
print(fib2(100))

from …import * 陳述句

全部匯入

from mymodule import fib, fib2

報錯解決方案

not enough values to unpack (expected 2, got 1)

沒有足夠的值來解包
---洗掉多余的空格行 如 a,b=1,2

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/46152.html

標籤:其他

上一篇:重置root密碼遇到問題

下一篇:certbot-auto 一直卡在“Installing Python packages…”解決方法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more