日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断 服务器架构性能 数据,服务器架构之性能扩展-第五章(6)

發(fā)布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断 服务器架构性能 数据,服务器架构之性能扩展-第五章(6) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Mysql>create table t2 like t1;//復制表結構

Mysql>insert into t2 select * from t1; //復制數(shù)據(jù)內容

索引是一種快速查詢的有效方法,可以通過alter增加索引或create語句創(chuàng)建。

mysql>alter table t1 add ind_id (id);

mysql>alter table t1 add unique/primary key (id);

mysql>create index ind_id on table t1 (id);

mysql>show index from t1;

mysql>drop index ind_id on table t1;

mysql>alter table t1 drop index ind_id;

Unique索引時指唯一索引,是沒有重復行的索引。

Alter方法創(chuàng)建和刪除索引

刪除主鍵,如果索引列是自動增長的變量。首先要取消自動增長,然后才可以刪除主鍵,因為自動增長序列默認為主鍵。

增加自動增長主鍵索引

視圖:是存在于表之外的另一張表,符合條件的查詢結果

Mysql>create view v_t1 as select * from t1 where id >10;

Mysql>drop view v_t1;

視圖時隨著主表而變化的表

字符串函數(shù):

Concat (string1,……) //連接字符串

Lcase(string1)?//換成小寫

Ucase(string1)//換成大寫

Length(string1) //string1的長度

Rtrim(string1)?//去除后端空格

Ltrim(string1)//取出前段空格

Repeat (string1,count)//重復count次

Replace(str,search_str,replace_str) //在str中,用replace_str代替search_str

Substring(str,position,length) //從str的position開始,取length個字符

Space(count) //生成count個空格

數(shù)學函數(shù):

Bin(number)//十進制轉為二進制

Ceiling(string1)//向上取整

Floor(string)//向下取整

Max(col)//取最大值,聚合時使用

Min(col)//取最小值,聚合時使用

Sqrt(number)//開平方

Rand()//返回0-1內的隨即取值

日期函數(shù):

Curdate() //返回當前日志

Curtime() //返回當前時間

Now()?//返回當前日期時間

Week(date) //返回這是多少周

Year(date)?//返回年份

Datediff(date1,date2) //返回開始時間date1和結束時間date2間天數(shù)

預處理是傳遞一個參數(shù)作為where判斷語句:

Mysql>prepare hello from “select * from t1 where id >?”;

Mysql>set @i=1;

Mysql>excute hello using @i;

Mysql>drop prepare stml;

mysql>set autocommit=0;//關閉自動提交

mysql>delete from t1 where id=11; //

mysql>savepoint p1;//建立一個還原點

mysql>delete from t1 where id=10;

mysql>savepoint2;

mysql>rollback to p1;?//恢復到p1還原點,p2自動失效

mysql>rollback;?//退回到原始還原點

修改引擎,使用事處理功能,要使用innodb引擎才可以。

回滾恢復數(shù)據(jù)

設置回滾點

存儲是一種批量插入數(shù)據(jù)的方法,需要先將結尾符改為//,最后再改回來,然后通過call命令來調用存儲

觸發(fā)器是一種當完成某項動作的同時,可以同時調用其它數(shù)據(jù)庫進程同時進行。通過create trigger創(chuàng)建。

提前存在的值則old,不存在則new。

Insert型觸發(fā)器:

Delete型觸發(fā)器

Update型觸發(fā)器:

聯(lián)合查看:可以使用聯(lián)合查看來查詢觸發(fā)與否

5.1.9重排auto_increment值

常用的刪除數(shù)據(jù)表內容有如下兩種方法:

Mysql>delete from t1;?//清除表的內容,改變結構

Mysql>truncate table t1; //清楚表的內容,不改變結構,速度快常用

Mysql>alter table t1 auto_increment=1;?//如果自動增長值不是從1開始可以這樣調整

5.1.10常見sql技巧

正則表達式:

Mysql>select name,email from t where email pegexp “@163[,.]com$”; //匹配@163.com或@163,com郵箱

Mysql>select name,email from t where emal like “@163.com” or email kike “@163,com”;

Rand()隨機:

Mysql>select * from t order by rand() limit 3; //隨機3條數(shù)據(jù)

Group by的排序擴展

Mysql>select cname,pname,count(pname)?from t group by cname,pame with rollup;//分別對個結果進行排序和統(tǒng)計

創(chuàng)建外鍵:

Mysql>create table t3(id int,name char(20), foreign kye (id) references t2(id) on delete cascade on update cascade);?//創(chuàng)建t3使用外鍵t2

Mysql help使用:

Mysql>? Create 查看命令和用法

5.2.1優(yōu)化sql語句一般步驟

首先查看各種語句使用頻率

Mysql>show 【session/global】 status;?//session當前連接,global表示數(shù)據(jù)啟動至今

登陸以來進行增刪改查的次數(shù)

Com_update,com_delete分別表示更新和刪除次數(shù)。

對于innodb引擎可以使用以下查詢語句,innodb_rows_delete/update/select/insert

Innodb引擎是影響的行數(shù),myisam引擎是影響的次數(shù)。

Innodb是影響的行數(shù),myisam是影響的次數(shù)。

Connections代表連接數(shù),uptime代表連接時間,slow_queries代表慢查詢次數(shù)。

定位執(zhí)行效率低的語句

Mysql>explain select * from t where id=1000;

Mysql>desc select * from t where id=1000;

我們重點看一下影響行數(shù)。

對一個表增加索引之后,查詢范圍由9變2,快多了。

索引是優(yōu)化mysql數(shù)據(jù)庫最常用的方法,使用索引注意以下幾點。

1,,對于復合索引,一般只對左邊的索引有效。

2,使用通配符時,like左邊不能用通配符

例:mysql>explain select * from t where name like “%3”\G?//不會使用索引

3.對于null的搜索is null

例:mysql>desc select * from t where name is null \G

1.對于行數(shù)低于100的數(shù)據(jù)表,索引效果不是很好

2.聯(lián)合查詢語句語句要都使用索引,才會使用索引

3.如果索引列是字符串,則查詢時要加“”

4.對于handler_read_rnd_next參數(shù)較大的,應該建立索引

5.3常用sql優(yōu)化

5.3.1提高數(shù)據(jù)的導入效率

常用導入數(shù)據(jù)的方法是通過outfile進行的。通過outfile導出數(shù)據(jù),這時是表內容,非表結構。例如導出數(shù)據(jù)

導入數(shù)據(jù)

對于innodb引擎表可以通過以下方法提高速度:

1、通過set unique_checks=0,關閉唯一性效驗,導入數(shù)據(jù)完畢后再set unique_checks=1;恢復唯一性效驗。

2、關閉自動提交,提高導入效率。導入數(shù)據(jù)前執(zhí)行set autocommit=0關閉自動提交;導入后set autocommit=1,恢復自動提交。

5.3.2優(yōu)化insert語句

使用insert delayed可以使數(shù)據(jù)庫得到更高的效率。并且可以增加bulk_inser_buffer_size的變量值來提高速度

5.3.3避免使用嵌套查詢

5.4數(shù)據(jù)庫的優(yōu)化

數(shù)據(jù)庫的優(yōu)化一般可以通過拆分表提高表的訪問效率,這也可以解決大存儲量;使用中間表技術提高查詢速度,中間表一般就是視圖技術。

數(shù)據(jù)庫鎖定可以使用lock table t read/write;

讀鎖,有一個人讀鎖,其他人可讀不可以寫。

寫鎖,只有本人可以進行增刪改查,其他人不能讀寫。

5.4.2四種字符集問題

Mysql>status;查看系統(tǒng)字符集。它包括服務器字符集,數(shù)據(jù)庫字符集,客戶端字符集,鏈接字符集

字符集可以通過/etc/my.cnf配置文件進行修改

【client】用于定義客戶端字符集和鏈接字符集

【mysqld】控制著服務器字符集和數(shù)據(jù)庫字符集

下面的collation-server是校驗字符集

Mysql>show character set;?//查看校驗字符集

Bin_log日志是系統(tǒng)進行恢復的重要日志

通過修改/etc/my.cnf文件,去掉#號即可

5.4.4慢查詢日志

慢查詢日志是進行數(shù)據(jù)庫優(yōu)化的基礎。

Vi /etc/my.cnf

Log_slow_queries=slow.log//開啟慢查詢

Log_query_time=5//設置慢查詢的時間

Socket默認是位于/tmp/mysql.sock, mysql的啟動需要socket文件,當然可以通過重啟數(shù)據(jù)庫自動建立socket,也可以不用socket便實現(xiàn)登陸。可以使用

Mysql>mysql –u root –p –protocol tcp –hlocalhost

Service mysqld?stop

Mysql_safe –skip-grant-tables –user=mysql &//跳過授權表

Mysql –uroot

Mysql>update user set password=password(“123”) where user=”root” and host=”localhost”;

或mysql>set password for root@loaclhost=password(“123”);

或mysql>set password=password(“123”);//修改密碼

總結

以上是生活随笔為你收集整理的判断 服务器架构性能 数据,服务器架构之性能扩展-第五章(6)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。