标签分类
技术文章
当前位置:主页 > 计算机编程 > mysql > MySQL数据库如何查看数据表占用空间大小和记录数

MySQL数据库查看数据表占用空间大小和记录数的实例讲解

  • 发布时间:
  • 作者:码农之家原创
  • 点击:144

MySQL数据库如何查看数据表占用空间大小和记录数

这篇文章主要知识点是关于MySQL,数据库,数据表,查看占用空间大小,查看记录数,MySQL数据库如何查看数据表占用空间大小和记录数,的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP&MySQL跨设备网站开发实例精粹
  • 类型:PHP编程大小:80.9 MB格式:PDF出版:清华大学出版社作者:陈惠贞,陈俊荣
立即下载

如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:

TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小

其他字段请参考MySQL的手册,这几个字段对我们来说最有用。
一个表占用空间的大小,相当于是 数据大小 + 索引大小,

示例:

1.想查看hx库的所有表大小,可以使用:

复制代码 代码如下:

SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='hx';

 

+-------------------+--------------------------+------------+
| TABLE_NAME        | DATA_LENGTH+INDEX_LENGTH | TABLE_ROWS |
+-------------------+--------------------------+------------+
| enjoy_data    |                  6979584 |      70113 |
| hx_record      |                113410048 |     753279 |
| itlearner_record       |              21835546624 |  104917777 |
| tmp_day_id        |                    17326 |        811 |
+-------------------+--------------------------+------------+


2.想查看hx库的enjoy表大小,可以使用:
复制代码 代码如下:

SELECT DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='hx' AND TABLE_NAME = 'enjoy_data';

返回:
复制代码 代码如下:

+--------------------------+------------+
| DATA_LENGTH+INDEX_LENGTH | TABLE_ROWS |
+--------------------------+------------+
|                     6979584 |          70113 |
+--------------------------+------------+

 

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到等mysql文章进一步学习,感谢大家的阅读和支持。

上一篇:MySQL用户和权限及破解root口令的方法

下一篇:没有了

展开 +

收起 -

学习笔记
网友NO.405447

使用cgroups来限制MySQL企业备份服务对资源的占用

今天我遇到一个问题,MySQL企业版备份引起I/O子系统负载过大,应用响应缓慢,导致系统不可用。所以我想限制mysqlbackup的进程,使它不会引起更多的问题。 mysqlbackup命令里面有读,写和进程数的设置。默认是1个读,1个写和5个线程。因为我用的是默认设置,所以还是没有必要去调整了。 使用ionice工具没法工作,因为它需要CFG I/O调度器。 我在这篇文章里找到一个方法。 它使用的是linux的cgroups。之前,在三台中有一台服务器使用的是非常慢的CPU的情况下,我使用过cgroups来测试一个galera的安装工作。 # mkdir /cgroup/blkio# mount -t cgroup -o blkio non /cgroup/blkio# cgcreate -g blkio:/mysqlbackup# ls -lh /dev/mapper/vgdb01-lvdb01lrwxrwxrwx 1 root root 7 Sep 26 14:22 /dev/mapper/vgdb01-lvdb01 - ../dm-2# ls -lh /dev/dm-2brw-rw---- 1 root disk 253, 2 Sep 26 14:22 /dev/dm-2# cgset -r blkio.throttle.read_iops_device="253:2 20" mysqlbackup# cgset -r blkio.throttle.write_iops_device="253:2 20" mysqlbackup# echo $$ /cgroup/blkio/mysqlbackup/tasks# cat /proc/$$/cgroup1:blkio:/mysqlbackup# mysqlbackup --user=root --password=xxxxxx --with-timestamp --backup-dir=/data/backup backup 和我期待的完全一样,这种方式工作的很好。读和写操作都被限制在 20 iops. 后来发现是存储系统的问题,所以我没有在生产环境使用这种方法,但是我希望这会帮上其他人忙。或许在其他问题下也……

网友NO.475183

MySQL占用内存较大与CPU过高测试与解决办法

更改后如下: innodb_buffer_pool_size=576M -256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀 query_cache_size=100M -16M 查询缓存 tmp_table_size=102M -64M 临时表大小 key_buffer_size=256m -32M 重启mysql服务后,虚拟内存降到200以下. 另外mysql安装目录下有几个文件:my-huge.ini 、my-large.ini、my-medium.ini...这几个是根据内存大小作的建议配置,新手在设置的时候也可以参考一下。 2G内存的MYSQL数据库服务器 my.ini优化 (my.ini) 2G内存,针对站少,优质型的设置,试验特: table_cache=1024 物理内存越大,设置就越大.默认为2402,调到512-1024最佳 innodb_additional_mem_pool_size=8M 默认为2M innodb_flush_log_at_trx_commit=0 等到innodb_log_buffer_size列队满后再统一储存,默认为1 innodb_log_buffer_size=4M 默认为1M innodb_thread_concurrency=8 你的服务器CPU有几个就设置为几,默认为8 key_buffer_size=256M 默认为218 调到128最佳 tmp_table_size=64M 默认为16M 调到64-256最挂 read_buffer_size=4M 默认为64K read_rnd_buffer_size=16M 默认为256K sort_buffer_size=32M 默认为256K max_connections=1024 默认为1210 试验一: table_cache=512或1024 innodb_additional_mem_pool_size=2M innodb_flush_log_at_trx_commit=0 innodb_log_buffer_size=1M innodb_thread_concurrency=8 你的服务器CPU有几个就设置为几,默认为8 key_buffer_size=128M tmp_table_size=128M read_buffer_size=64K或128K read_rnd_buffer_size=256K sort_buffer_size=51……

网友NO.479769

MySQL 句柄数占用过多的解决方法

在Windows下安装MySQL ,用了官方的配置向导生成了my.ini,本以为很安稳了,谁知十多个小时过去之后,系统响应非常慢,看资源管理器的性能卡,发现句柄数竟然达到了10万!怪不得无论使用什么程序都卡得很。 网上搜索一下,大概是说 innodb_buffer_pool_size 这个默认的8M太大,但我已经skip-innodb了啊。 后来又看到一个设置innodb_flush_log_at_trx_commit innodb_flush_log_at_trx_commit (这个很管用) 抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统挂了时才可能丢数据。 后来设置成了innodb_flush_log_at_trx_commit = 2。 重启MYSQL服务,的确好了许多,句柄数最终保持在2万左右,处于稳定状态,其它程序快了许多。 看来在配置文件中innodb即使skip掉了,也仍然在使用系统中的内存、磁盘IO,看来对于MYSQL的配置还是要手工研究,……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明