mysql優化記錄2

2021-10-01 09:47:26 字數 788 閱讀 3287

上次優化完之後,發現又有其他比較慢的地方,就需要再次優化。這次優化主要是加索引解決的。以及刪除了一大部分資料。優化的過程中遇到了很多問題,比如線上加索引,線上刪除資料之類的,盡量做成指令碼,晚上去更新。因為公司的服務是兩台伺服器,主從伺服器。修改了任何一台,另一條是會在sql執行完成之後,進行主從同步的。這樣會引發鎖表的情況。資料庫的指令碼寫法我是這樣做的。業務邏輯裡面也需要把熱資料給抽離出來,畢竟是乙個列表,每次查詢都到資料庫,如果請求量大的,伺服器是還是承受不住的,當然這一塊的業務邏輯比較難加,後面再加。

crontab -e

12 2 * * * ~/addindex.sh

addindex.sh的內容如下:

mysql -u root -p your_database < addindex.sql

addindex.

sql裡面的內容類似這樣:

alter

table tablename add

index shop_name(shop_id, name_id)

mysql如何檢視當前時間段特別慢的查詢?下面的是查詢5分鐘的情況。

select

*from information_schema.processlist where command !=

'sleep'

andtime

>

300order

bytime

desc

;

mysql優化記錄

一.建立索引 索引的分類 1.新增primary key 主鍵索引 alter tabletable nameadd primary key column 2.新增unique 唯一索引 alter tabletable nameadd unique column 3.新增index 普通索引 寫法...

mysql使用優化記錄

使用in語句,in的列表明確並且有限時,可以使用。因為此時搜尋引擎會使用索引,但in的是乙個查詢結果時,索引將會沒有作用,會查詢全表。例子 使用in查詢時,in的列表有限且明確 select from on auction where pid in 10,11,20 此時的執行計畫,會使用建立在pi...

mysql反查優化記錄

id name source 1客戶1 a渠道2 客戶1b渠道 3客戶2 a渠道4 客戶3a渠道 5客戶1 c渠道我現在的邏輯是根據傳進來的id查詢name,然後再根據name來查詢id 例如 傳進來id是1和3,根據這兩個id查到name值為客戶1和客戶2,然後根據這兩個name去查詢id,可得到...