主頁 > 資料庫 > sql server 自學筆記

sql server 自學筆記

2020-09-15 03:27:34 資料庫

注意:/*
SELECT - 從資料庫中提取資料
UPDATE - 更新資料庫中的資料
DELETE - 從資料庫中洗掉資料
INSERT INTO - 向資料庫中插入新資料
CREATE DATABASE - 創建新資料庫
ALTER DATABASE - 修改資料庫
CREATE TABLE - 創建新表
ALTER TABLE - 變更(改變)資料庫表
DROP TABLE - 洗掉表
CREATE INDEX - 創建索引(搜索鍵)
DROP INDEX - 洗掉索引
*/

/*  一.創建資料庫
SQL CREATE TABLE 陳述句
CREATE TABLE 陳述句用于創建資料庫中的表。
表由行和列組成,每個表都必須有個表名。
SQL CREATE TABLE 語法
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
column_name 引數規定表中列的名稱。
data_type 引數規定列的資料型別(例如 varchar、integer、decimal、date 等等)。
size 引數規定表中列的最大長度。
提示:如需了解 MS Access、MySQL 和 SQL Server 中可用的資料型別,請訪問我們完整的 資料型別參考手冊。
*/
--  
create database lw
use lw 
--  二.創建表
create table lwweb
(id varchar(100) not null, 
 namecode varchar(100),
 name varchar(100),
 vip varchar(100),
 price varchar(100),
 PRIMARY KEY (ID)      --約束 主鍵
)
--   三.修改資料庫
/*
ALTER TABLE 陳述句
ALTER TABLE 陳述句用于在已有的表中添加、洗掉或修改列。

SQL ALTER TABLE 語法
如需在表中添加列,請使用下面的語法:

ALTER TABLE table_name
ADD column_name datatype
如需洗掉表中的列,請使用下面的語法(請注意,某些資料庫系統不允許這種在資料庫表中洗掉列的方式):

ALTER TABLE table_name
DROP COLUMN column_name
要改變表中列的資料型別,請使用下面的語法:

SQL Server / MS Access:

ALTER TABLE table_name
ALTER COLUMN column_name datatype
My SQL / Oracle:

ALTER TABLE table_name
MODIFY COLUMN column_name datatype
Oracle 10G 之后版本:

ALTER TABLE table_name
MODIFY column_name datatype;
*/
alter table lwweb add vipname varchar(100)
alter table lwweb alter column id int
/*  四.插入資料
1.INSERT INTO 陳述句可以有兩種撰寫形式。

第一種形式無需指定要插入資料的列名,只需提供被插入的值即可:

INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二種形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

2.insert into select 和select into from 的區別

insert into scorebak select * from socre where neza='neza'   --插入一行,要求表scorebak 必須存在
select *  into scorebak from score  where neza='neza'  --也是插入一行,要求表scorebak 不存在
*/
insert into lwweb values (1,101,'黑米',100,10,'小王')
insert into lwweb values (2,102,'白米',100,10,'小黑')
insert into lwweb values (3,103,'黃米',100,10,'小白')
insert into lwweb values (4,104,'花米',100,10,'小杜')
insert into lwweb values (5,103,'黃豆',100,10,'大白')
insert into lwweb values (6,104,'花米',100,10,'大杜')



select distinct vip from lwweb  -- distinct  去重

Select * from lwweb where vip is null; --空值判斷: is null
Select * from lwweb where vip between 1 and 100;  --between and (在 之間的值)
/*
1.Like模糊查詢

Select * from emp where ename like 'M%';
查詢 EMP 表中 Ename 列中有 M 的值,M 為要查詢內容中的模糊資訊。

 % 表示多個字值,_ 下劃線表示一個字符;
 M% : 為能配符,正則運算式,表示的意思為模糊查詢資訊為 M 開頭的。
 %M% : 表示查詢包含M的所有內容。
 %M_ : 表示查詢以M在倒數第二位的所有內容。
 
 
2.where

 不帶比較運算子的 WHERE 子句:

WHERE 子句并不一定帶比較運算子,當不帶運算子時,會執行一個隱式轉換。當 0 時轉化為 false,1 轉化為 true。例如:

SELECT studentNO FROM student WHERE 0
則會回傳一個空集,因為每一行記錄 WHERE 都回傳 false。

SELECT  studentNO  FROM student WHERE 1
回傳 student 表所有行中 studentNO 列的值。因為每一行記錄 WHERE 都回傳 true


3.ORDER BY

ORDER BY 多列的時候,先按照第一個column name排序,在按照第二個column name排序;如上述教程最后一個例子:

 1)、先將country值這一列排序,同為CN的排前面,同屬USA的排后面;
 2)、然后在同屬CN的這些多行資料中,再根據alexa值的大小排列。
 3)、ORDER BY 排列時,不寫明ASC DESC的時候,默認是ASC。
ALLE
   
ORDER BY 多列的時候,eg:

order by A,B        這個時候都是默認按升序排列
order by A desc,B   這個時候 A 降序,B 升序排列
order by A ,B desc  這個時候 A 升序,B 降序排列
即 desc 或者 asc 只對它緊跟著的第一個列名有效,其他不受影響,仍然是默認的升序。
*/
select * from lwweb order by id desc  --倒序排序
select * from lwweb order by id asc   --正序排序


update lwweb set vip=200,price=20 where id=2
update lwweb set vip=300,price=30 where id=3
update lwweb set vip=400,price=40 where id=4

/*
SELECT TOP 子句用于規定要回傳的記錄的數目。

SELECT TOP 子句對于擁有數千條記錄的大型表來說,是非常有用的。

注意:并非所有的資料庫系統都支持 SELECT TOP 陳述句。 MySQL 支持 LIMIT 陳述句來選取指定的條數資料, Oracle 可以使用 ROWNUM 來選取。
*/
SELECT TOP 50 PERCENT * FROM lwweb;--percent 表示百分比(%)


--SQL LIKE 語法
--SELECT column_name(s)FROM table_name WHERE column_name LIKE pattern;


/*
通配符 描述
1.% 替代 0 個或多個字符
2._ 替代一個字符
3.[charlist] 字符列中的任何單一字符
4.[^charlist]或[!charlist]   不在字符列中的任何單一字符
MySQL 中使用 REGEXP 或 NOT REGEXP 運算子 (或 RLIKE 和 NOT RLIKE) 來操作正則運算式。

例如;下面的 SQL 陳述句選取 name 以 A 到 H 字母開頭的網站:
實體
SELECT * FROM Websites WHERE name REGEXP '^[A-H]';
*/

/*
IN 運算子
IN 運算子允許您在 WHERE 子句中規定多個值。

SQL IN 語法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

IN 與 = 的異同

 相同點:均在WHERE中使用作為篩選條件之一、均是等于的含義
 不同點:IN可以規定多個值,等于規定一個值
IN

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
=

SELECT column_name(s)
FROM table_name
WHERE column_name=value1;

in 與 = 的轉換

select * from Websites where name in ('Google','菜鳥教程');
可以轉換成 = 的表達:

select * from Websites where name='Google' or name='菜鳥教程';
*/


/*
SQL SELECT INTO 語法
我們可以復制所有的列插入到新表中:

SELECT *
INTO newtable [IN externaldb]
FROM table1;
或者只復制希望的列插入到新表中:

SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
*/
select * into lwweb1 from lwweb

/*
通過 SQL,您可以從一個表復制資訊到另一個表。

INSERT INTO SELECT 陳述句從一個表復制資料,然后把資料插入到一個已存在的表中。

SQL INSERT INTO SELECT 陳述句
INSERT INTO SELECT 陳述句從一個表復制資料,然后把資料插入到一個已存在的表中。目標表中任何已存在的行都不會受影響。

SQL INSERT INTO SELECT 語法
我們可以從一個表中復制所有的列插入到另一個已存在的表中:

INSERT INTO table2
SELECT * FROM table1;
或者我們可以只復制希望的列插入到另一個已存在的表中:

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

select into from 和 insert into select 都是用來復制表

兩者的主要區別為: select into from 要求目標表不存在,因為在插入時會自動創建;insert into select from 要求目標表存在。

1. 復制表結構及其資料:
create table table_name_new as select * from table_name_old
2. 只復制表結構:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只復制表資料:
如果兩個表結構一樣:
insert into table_name_new select * from table_name_old
如果兩個表結構不一樣:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

稍微整理一下 select into from 和 insert into select 的理解層面的區別
select into from :將查詢出來的資料整理到一張新表中保存,表結構與查詢結構一致。
select *(查詢出來的結果) into newtable(新的表名)form where (后續條件)
即,查詢出來結果--->復制一張同結構的空表--->將資料拷貝進去。
insert into select :為已經存在的表批量添加新資料。
insert into  (準備好的表) select *(或者取用自己想要的結構)frome 表名 where 各種條件
即,指定一張想要插入資料的表格--->對資料進行加工篩選--->填入一張準備好的表格。

*/
insert into lwweb1 select * from lwweb


/*
不同的 SQL JOIN
在我們繼續講解實體之前,我們先列出您可以使用的不同的 SQL JOIN 型別:

INNER JOIN:如果表中有至少一個匹配,則回傳行
LEFT JOIN:即使右表中沒有匹配,也從左表回傳所有的行
RIGHT JOIN:即使左表中沒有匹配,也從右表回傳所有的行
FULL JOIN:只要其中一個表中存在匹配,則回傳行

left join : 左連接,回傳左表中所有的記錄以及右表中連接欄位相等的記錄。
right join : 右連接,回傳右表中所有的記錄以及左表中連接欄位相等的記錄。
inner join : 內連接,又叫等值連接,只回傳兩個表中連接欄位相等的行。
full join : 外連接,回傳兩個表中的行:left join + right join。
cross join : 結果是笛卡爾積,就是第一個表的行數乘以第二個表的行數。

關鍵字 on
資料庫在通過連接兩張或多張表來回傳記錄時,都會生成一張中間的臨時表,然后再將這張臨時表回傳給用戶。
在使用 left jion 時,on 和 where 條件的區別如下:
1、 on 條件是在生成臨時表時使用的條件,它不管 on 中的條件是否為真,都會回傳左邊表中的記錄。
2、where 條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有 left join 的含義(必須回傳左邊表的記錄)了,條件不為真的就全部過濾掉
*/
select * from lwweb as a join lwweb1 as b on a.id=b.id
select * from lwweb as a full join  lwweb1 as b on a.id=b.id

/*
SQL UNION 運算子
UNION 運算子用于合并兩個或多個 SELECT 陳述句的結果集。

請注意,UNION 內部的每個 SELECT 陳述句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每個 SELECT 陳述句中的列的順序必須相同。

SQL UNION 語法
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
注釋:默認地,UNION 運算子選取不同的值。如果允許重復的值,請使用 UNION ALL。

SQL UNION ALL 語法
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
注釋:UNION 結果集中的列名總是等于 UNION 中第一個 SELECT 陳述句中的列名。
*/
--union
select * from lwweb
union
select * from lwweb1
--union all
select * from lwweb
union all
select * from lwweb1



/*SQL 約束(Constraints)
SQL 約束用于規定表中的資料規則。

如果存在違反約束的資料行為,行為會被約束終止。

約束可以在創建表時規定(通過 CREATE TABLE 陳述句),或者在表創建之后規定(通過 ALTER TABLE 陳述句)。

SQL CREATE TABLE + CONSTRAINT 語法
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
在 SQL 中,我們有如下約束:

NOT NULL - 指示某列不能存盤 NULL 值。
UNIQUE - 保證某列的每行必須有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助于更容易更快速地找到表中的一個特定的記錄。
FOREIGN KEY - 保證一個表中的資料匹配另一個表中的值的參照完整性。
CHECK - 保證列中的值符合指定的條件。
DEFAULT - 規定沒有給列賦值時的默認值。
例如:
CREATE TABLE Persons
(
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (Id_P)  //PRIMARY KEY約束
)
CREATE TABLE Persons
(
    Id_P int NOT NULL PRIMARY KEY,   //PRIMARY KEY約束
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
)
---------------------------------------------------------
SQL NOT NULL 約束
在默認的情況下,表的列接受 NULL 值。
SQL NOT NULL 約束
NOT NULL 約束強制列不接受 NULL 值。
NOT NULL 約束強制欄位始終包含值。這意味著,如果不向欄位添加值,就無法插入新記錄或者更新記錄。
下面的 SQL 強制 "ID" 列、 "LastName" 列以及 "FirstName" 列不接受 NULL 值:

實體
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);
添加 NOT NULL 約束
在一個已創建的表的 "Age" 欄位中添加 NOT NULL 約束如下所示:

實體
ALTER TABLE Persons
MODIFY Age int NOT NULL;
洗掉 NOT NULL 約束
在一個已創建的表的 "Age" 欄位中洗掉 NOT NULL 約束如下所示:

實體
ALTER TABLE Persons
MODIFY Age int NULL;
-----------------------------------------------------------
SQL UNIQUE 約束
SQL UNIQUE 約束
UNIQUE 約束唯一標識資料庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 約束擁有自動定義的 UNIQUE 約束。
請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
CREATE TABLE 時的 SQL UNIQUE 約束
下面的 SQL 在 "Persons" 表創建時在 "P_Id" 列上創建 UNIQUE 約束:
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如需命名 UNIQUE 約束,并定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
ALTER TABLE 時的 SQL UNIQUE 約束
當表已被創建時,如需在 "P_Id" 列創建 UNIQUE 約束,請使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (P_Id)
如需命名 UNIQUE 約束,并定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:
MySQL / SQL Server / Oracle / MS Access:
ALTER

uj5u.com熱心網友回復:

感謝分享, 基礎知識建議發到個人博客。

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

標籤:基礎類

上一篇:求助

下一篇:求教一個sql查詢相關語法

標籤雲
其他(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