`
tony_413
  • 浏览: 17497 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用python脚本通过information_schema数据库统计信息

阅读更多

 

刚学python,用MySQLdb写了个简单的统计些mysql信息的小脚本。

 

各位有什么不妥或者好的建议,请和我联系。

 

值得注意的是:用information_schema统计的表的行数是个一段时间里面的估算值,是不准确的,要得到确切的行数,要使用count函数。

 

#!/usr/bin/python  
#coding=utf-8  
#Author:tony_413
#date:2009-4-30
  
import MySQLdb  
  
def query_context(lists):  
    for list in lists:  
         print list  
  
conn=MySQLdb.connect(host='192.168.0.161',user='tony',passwd='ni#cai_CAI@_@',db='information_schema',charset='utf8')  
query=conn.cursor()  
query.execute("show processlist")  
processlists=query.fetchall()  
print "MySQL server total processlist: %d" %(len(processlists)-1)  
  
query.execute("select table_name,data_length,index_length from tables<span> where \  
                          table_schema = 'test4dev'order by data_length desc limit 10")  
table_size=query.fetchall()  
  
print "The following table is the tables of data length the top 10:"  
print "+------------------------+---------------+---------------+---------------+"  
print "|       table_name       |data_length(M) |index_length(M)|total_length(M)|"  
print "+------------------------+---------------+---------------+---------------+"  
  
for table_name,data_length,index_length in table_size:  
      print "|%-23s |%14d |%14d |%15d|" \  
        %(table_name,data_length/1048576,index_length/1048576,(data_length+index_length)/1048576)  
      print "+------------------------+---------------+---------------+---------------+"  
  
query.execute("select table_name,table_rows from tables where table_schema = 'test4dev' order by table_rows desc limit 10")  
table_row=query.fetchall()  
  
print "The following table is the row of table the top 10:"  
print "+------------------------+----------------+"  
print "|       table_name       |  table_rows    |"  
print "+------------------------+----------------+"  
  
  
for table_name,table_rows in table_row:  
    print "|%-23s | %14d |" %(table_name,table_rows)  
    print "+------------------------+----------------+"  
      
      
query.close()  
conn.close()
分享到:
评论

相关推荐

    python_database_backup:用于备份数据库和_或特定表的 Python 脚本

    Python 数据库备份脚本是一种非常实用的工具,尤其对于那些依赖数据库存储关键信息的应用程序而言。这个名为 "python_database_backup" 的项目显然提供了一个用 Python 编写的解决方案,旨在帮助用户自动化备份...

    数据库字典生成

    - "src":通常是源代码目录,可能包含用某种编程语言(如Python、Java或SQL脚本)编写的用于生成数据库字典文档的程序。这些代码可能包括查询数据库、解析结果、格式化输出等功能。 - "lib":可能包含库文件或依赖项...

    mysql数据字典生成

    例如,一个简单的Python脚本可以使用`pymysql`库来连接MySQL,并提取表的信息: ```python import pymysql def get_table_info(db_name, table_name): connection = pymysql.connect(host='localhost', user='root...

    Python 实现数据库更新脚本的生成方法

    接下来,我们需要创建一个Python脚本来比较两个不同环境的数据库,并根据差异生成相应的SQL更新脚本。该脚本支持以下功能: - 生成旧数据库中不存在的新表的创建脚本。 - 生成添加新列的SQL脚本。 - 生成修改列属性...

    对比2个数据库的差异

    这一步可能需要编写脚本或使用专门的数据库比较工具,如Red Gate的SQL Compare,它能自动检测并报告这些差异。 6. **导出至Excel**:对比结果通常需要以可视化和可编辑的形式呈现,Excel是理想的选择。可以使用...

    mysql索引导出删除

    例如,使用以下SQL语句可以从`information_schema`库中的`STATISTICS`表获取索引信息: ```sql SELECT TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, COLUMN_NAME, SEQ_IN_INDEX, INDEX_TYPE FROM ...

    python制作mysql数据迁移脚本

    例如,使用`information_schema.TABLES`视图来检查表是否存在,这是MySQL中查询元数据的标准方式。 6. **文件传输**: 虽然脚本代码没有完全展示文件传输部分,但通常使用`paramiko`库中的`SFTP`功能,可以安全地...

    Python 实现数据库(SQL)更新脚本的生成方法

    该方法通过执行SQL查询来获取指定数据库的所有表及其字段的详细信息(包括字段名称、是否可为空、字段类型、主键标识以及注释等),并将这些信息存储为字典形式返回。这一步骤为后续的数据库结构对比奠定了基础。 `...

    修改数据库表名的命令

    cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_name'") tables = cursor.fetchall() for table in tables: old_name = table[0] new_name = old_name....

    mysql 导出数据词典word或者html

    同时,转换过程也可以通过编写脚本自动化,以适应大规模数据库的管理需求。 总结来说,MySQL的数据词典导出涉及到查询数据库元数据、使用`mysqldump`命令和利用文本转换工具。掌握这一流程,可以帮助数据库管理员更...

    测试远程数据库是否连接成功

    4. **编写测试代码**:创建一个简单的程序或脚本,尝试建立连接并执行基础查询,如"SELECT * FROM information_schema.tables;"(根据数据库系统选择合适的查询)。如果连接成功,应能收到数据库返回的数据或确认...

    python 比较 mysql 表结构差异

    这可以通过查询`INFORMATION_SCHEMA.COLUMNS`表来实现,该表包含了所有数据库中表的所有列信息。我们可以为每个表构造一个包含列名、数据类型、是否为主键等信息的元组列表。 3. **比较表结构**:在获取了两个...

    Sql Server数据库转换Word

    3. 编写SQL查询语句,例如`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName'`,获取指定表的字段信息。 4. 使用`pandas.read_sql_query()`执行查询并将结果存储为DataFrame。 5. 使用`...

    比对两个数据库的表结构,并自动修正.zip

    这个压缩包可能包含了一系列的SQL查询、Python脚本或专门的数据库比较工具,用于分析和同步两个数据库的结构。以下是一些关于这个主题的关键知识点: 1. **数据库表结构**:数据库中的表是由列(字段)和行(记录)...

    获取数据库表名和字段名.rar

    5. 压缩包中的"codefans.net"可能是指一个网站或资源来源,这可能意味着提供的代码或工具是在CodeFans(一个编程技术社区)上找到的,它可能包含特定数据库系统的Python脚本、Java类或其他语言的实现,用于获取表名...

    mysql、oracle 数据库生成文档源码

    这通常指的是一个程序或脚本,它可以连接到MySQL和Oracle数据库,然后自动生成包含数据库表结构、字段信息、索引和约束的文档。这样的工具可以大大节省手动编写文档的时间,提高工作效率。 数据库生成文档的核心...

    orbis-tertius:从Postgres数据库生成数据字典文档

    setup.py安装一个Python命令行脚本orbis ,该脚本探查information_schema视图(以及系统目录表中的一些内容),并为每个表生成Markdown文件,列出列的详细信息和描述,主键和外键列以及与之的相互关系。其他表。 ...

    数据库Insert语句生成工具(SQLSERVER版).zip

    这可以通过SQL查询`INFORMATION_SCHEMA.COLUMNS`系统视图来实现。 6. **数据遍历**:生成Insert语句需要遍历每个表中的数据行。可以使用`SELECT * FROM 表名`来获取所有数据,然后逐行处理,构造Insert语句。 7. *...

    利用python解决mysql视图导入导出依赖的问题

    总的来说,使用Python解决MySQL视图的导入导出依赖问题,主要是通过查询数据库获取视图信息,然后利用编程逻辑处理依赖关系,最后按顺序保存和导入视图。这种方法提高了工作效率,降低了手动操作带来的风险,对于...

    MySQLMTOP数据库监控工具 2.2.zip

    结合使用Information Schema可直接从MySQL服务器收集数据,无需额外的软件或配置。 7.性能监视 监视影响MySQL性能的主要指标。如查询缓存命中率, Key_buffer_read_hits,Key_buffer_write_hits, Thread_cache_...

Global site tag (gtag.js) - Google Analytics