首先這些技術需要用很多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之類的操作。水平分表 今天面試被問到水平分表,突然愣住了,分都知道,但分完如何有效查詢就不好說了。原則 具體情況具體分析。常...