mysql里分表技术与查询

来源:互联网 发布:攻城掠地神石进阶数据 编辑:程序博客网 时间:2024/06/05 18:35

首先这些技术需要用很多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='表名'




0 0