mysql優化問題彙總

2022-01-30 00:33:36 字數 3094 閱讀 2259

sql優化--》分割槽--》分表--》垂直分庫--》水平分庫--》讀寫分離

進入到mysql命令列。mysql -u root -

p show plugins

//檢視是否支援分割槽,最後會出現乙個 partition 這個行 表示支援

也可以 show variables like

'%partition%

';

show table status

select

partition_name part,

partition_expression expr,

partition_description descr,

table_rows

from information_schema.partitions where

table_schema

=schema

()

and table_name=

'test

';

select

schema() //檢視在那個資料庫

p0 id 6 1

p1 id 11 0

p2 id 16 1

p3 id maxvalue 1

explain partitions select語句

注意:必須建立表是的時候才能建立分割槽,不能在已有的資料上對錶進行分割槽,如果想在已有的表中建立分割槽,解決辦法是建立乙個新的表並設定好分割槽,然後再進行資料轉移。注意;號。

--

---------------------------------建立range分割槽

create

table

employees (

id intnot

null

, fname

varchar(30

), lname

varchar(30

), hired date

notnull

default

'1970-01-01',

separated date

notnull

default

'9999-12-31',

job_code

intnot

null

, store_id

intnot

null

)partition

byrange (store_id) (

partition p0

values less than (6

), partition p1

values less than (11

), partition p2

values less than (16

), partition p3

values

less than maxvalue

);--

---------------------------------建立list分割槽

create

table

emp (

empno

varchar (20) not

null

,  empname

varchar (20

),  deptno

int,

birthdate date

notnull

,  salary

int) partition

bylist (deptno)(

partition p1

values

in (10

),  partition p2

values

in (20

),  partition p3

values

in (30));

以部門作為分割槽依據,每個部門做一分割槽。

-----------------------------------建立hash分割槽

create

table

emp2 (

empno

varchar (20

),    empname

varchar (20

),    deptno

int,

birthdate date ,

salary

int) partition

by hash (deptno) partitions 3;--

---------------------------------建立key分割槽

create

table

emp (

empno

varchar (20) not

null

,  empname

varchar (20

),  deptno

int,

birthdate date

notnull

,  salary

int) partition

bykey (birthdate) partitions 4;

將系統中不存在關聯關係或者需要join的表可以放在不同的資料庫不同的伺服器中。

按照業務垂直劃分。比如:可以按照業務分為資金、會員、訂單三個資料庫。

需要解決的問題:跨資料庫的事務、join查詢等問題。

例如,大部分的站點。資料都是和使用者有關,那麼可以根據使用者,將資料按照使用者水平拆分。

按照規則劃分,一般水平分庫是在垂直分庫之後的。比如每天處理的訂單數量是海量的,可以按照一定的規則水平劃分。需要解決的問題:資料路由、組裝。

MySQL優化命令彙總

1 檢視當前伺服器配置的最多連線數 檢視當前伺服器配置的最多連線數 show variables like max connections 設定方法 set global max connections 10000 2 檢視當前已使用最大連線數 show global status like max...

MySQL問題彙總

1.先刪除前面5條記錄,然後再插入,mysql會自動填補5條記錄的位置,但id還是從8自增,中顯示的從40開始是因為我前面又做了其他的操作。好像這是mysql的優化,你刪除了前面的 後面生成的 會去補那個地方,就是刪除時 不刪除 標識 再有新的 直接蓋上了,類似我們的檔案系統 估計像是檔案碎片修復一...

mysql問題彙總

mysql提供跳過訪問控制的命令列引數,通過在命令列以此命令啟動mysql伺服器 safe mysqld skip grant tables 即可跳過mysql的訪問控制,任何人都可以在控制台以管理員的身份進入mysql資料庫。root密碼丟失時 mysqld safe skip grant tab...