mysql裡分表技術與查詢

2021-07-04 14:12:15 字數 1846 閱讀 7155

首先這些技術需要用很多mysql內部的一些常量或者說內部表,現總結一部分如下(不斷更新):

一、mysql內部常量或者內部表

表於資料庫的

databases 所有資料名

engine使用的資料庫引擎[myisam|csv|innodb]

version版本

關於表的

tables所有表

table_name          表名

table_type表型別

table_schema資料表所屬的資料庫名

table_catalog  資料表登記目錄

table_rows 表裡所存多少行資料

create_time表的建立時間

update_time 表的更新時間

table_comment表的注釋、備註

關於欄位的

columns所有字段

column_name欄位名

column_type欄位型別

column_key欄位主鍵

data_length資料長度

max_data_length最大資料長度

ordinal_position 欄位在表中第幾列

column_default 列的預設資料

is_nullable 字段是否可以為空

data_type  資料型別

column_comment  字段注釋、描述

character_maximum_length 字元最大長度

show databases列出 mysql server上的資料庫。 

show tables [from db_name]列出資料庫中的表。  

show table status [from db_name]列出資料庫的表資訊,比較詳細。  

show columns from tbl_name [from db_name] 列出表的列資訊,同 show fields from tbl_name [from db_name],describe tbl_name 。  

show full columns from tbl_name [from db_name] 列出表的列資訊,比較詳細,同 show full fields from tbl_name [from db_name]。   

show index from tbl_name [from db_name]列出表的索引資訊。 show status列出 server 的狀態資訊。 

show variables列出 mysql 系引數值 

show processlist檢視當前mysql查詢程序 

show grants for user列出使用者的授權命令

二、mysql分表

比如,我們建立三個表,表結構相同,表名分別為:tab_1、tab_2、tab_3、tab_4、tab_5.。。。。。。

當然,我們在用分表技術的時候,都是用程式建立,不會用手動建立的。

三、mysql分表後的查詢

查詢時我們需要用到mysql的系統常量

select table_name from information_schema.tables where table_name like 'tab_%'
這樣可以查出所有的tab_開始的表名,然後再進行迴圈查詢資料。

獲取表索引

select * from information_schema.statistics where table_schema='資料庫名' and table_name='表名'

mysql分表 查詢

垂直分表 其實沒啥好講,就是主鍵 常用列放在原表中,再講主鍵 一些不常用列放在另外的表中。這樣乙個資料頁就可以存放更多資料。但是缺點也明顯,可能會增加join 或 union之類的操作。水平分表 今天面試被問到水平分表,突然愣住了,分都知道,但分完如何有效查詢就不好說了。原則 具體情況具體分析。常見...

mysql分表 查詢

最近面試,問到關與mysql資料庫的分表一些問題,如設計乙個千萬級別的會員資料庫,當時想到了分表,但是當問到如何跟據username查詢到使用者的資訊時,這時,有點卡住了,所以為了讓自已重新認識分表,而記錄下來。垂直分表 其實沒啥好講,就是主鍵 常用列放在原表中 再講主鍵 一些不常用列放在另外的表 ...

mysql分表 查詢

垂直分表 其實沒啥好講,就是主鍵 常用列放在原表中 再講主鍵 一些不常用列放在另外的表 中。這樣乙個資料頁就可以存放更多資料。但是缺點也明顯,可能會增加join 或 union之類的操作。水平分表 今天面試被問到水平分表,突然愣住了,分都知道,但分完如何有效查詢就不好說了。原則 具體情況具體分析。常...