刚学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 数据库备份脚本是一种非常实用的工具,尤其对于那些依赖数据库存储关键信息的应用程序而言。这个名为 "python_database_backup" 的项目显然提供了一个用 Python 编写的解决方案,旨在帮助用户自动化备份...
- "src":通常是源代码目录,可能包含用某种编程语言(如Python、Java或SQL脚本)编写的用于生成数据库字典文档的程序。这些代码可能包括查询数据库、解析结果、格式化输出等功能。 - "lib":可能包含库文件或依赖项...
例如,一个简单的Python脚本可以使用`pymysql`库来连接MySQL,并提取表的信息: ```python import pymysql def get_table_info(db_name, table_name): connection = pymysql.connect(host='localhost', user='root...
接下来,我们需要创建一个Python脚本来比较两个不同环境的数据库,并根据差异生成相应的SQL更新脚本。该脚本支持以下功能: - 生成旧数据库中不存在的新表的创建脚本。 - 生成添加新列的SQL脚本。 - 生成修改列属性...
这一步可能需要编写脚本或使用专门的数据库比较工具,如Red Gate的SQL Compare,它能自动检测并报告这些差异。 6. **导出至Excel**:对比结果通常需要以可视化和可编辑的形式呈现,Excel是理想的选择。可以使用...
例如,使用以下SQL语句可以从`information_schema`库中的`STATISTICS`表获取索引信息: ```sql SELECT TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, COLUMN_NAME, SEQ_IN_INDEX, INDEX_TYPE FROM ...
例如,使用`information_schema.TABLES`视图来检查表是否存在,这是MySQL中查询元数据的标准方式。 6. **文件传输**: 虽然脚本代码没有完全展示文件传输部分,但通常使用`paramiko`库中的`SFTP`功能,可以安全地...
该方法通过执行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的数据词典导出涉及到查询数据库元数据、使用`mysqldump`命令和利用文本转换工具。掌握这一流程,可以帮助数据库管理员更...
4. **编写测试代码**:创建一个简单的程序或脚本,尝试建立连接并执行基础查询,如"SELECT * FROM information_schema.tables;"(根据数据库系统选择合适的查询)。如果连接成功,应能收到数据库返回的数据或确认...
这可以通过查询`INFORMATION_SCHEMA.COLUMNS`表来实现,该表包含了所有数据库中表的所有列信息。我们可以为每个表构造一个包含列名、数据类型、是否为主键等信息的元组列表。 3. **比较表结构**:在获取了两个...
3. 编写SQL查询语句,例如`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName'`,获取指定表的字段信息。 4. 使用`pandas.read_sql_query()`执行查询并将结果存储为DataFrame。 5. 使用`...
这个压缩包可能包含了一系列的SQL查询、Python脚本或专门的数据库比较工具,用于分析和同步两个数据库的结构。以下是一些关于这个主题的关键知识点: 1. **数据库表结构**:数据库中的表是由列(字段)和行(记录)...
5. 压缩包中的"codefans.net"可能是指一个网站或资源来源,这可能意味着提供的代码或工具是在CodeFans(一个编程技术社区)上找到的,它可能包含特定数据库系统的Python脚本、Java类或其他语言的实现,用于获取表名...
这通常指的是一个程序或脚本,它可以连接到MySQL和Oracle数据库,然后自动生成包含数据库表结构、字段信息、索引和约束的文档。这样的工具可以大大节省手动编写文档的时间,提高工作效率。 数据库生成文档的核心...
setup.py安装一个Python命令行脚本orbis ,该脚本探查information_schema视图(以及系统目录表中的一些内容),并为每个表生成Markdown文件,列出列的详细信息和描述,主键和外键列以及与之的相互关系。其他表。 ...
这可以通过SQL查询`INFORMATION_SCHEMA.COLUMNS`系统视图来实现。 6. **数据遍历**:生成Insert语句需要遍历每个表中的数据行。可以使用`SELECT * FROM 表名`来获取所有数据,然后逐行处理,构造Insert语句。 7. *...
总的来说,使用Python解决MySQL视图的导入导出依赖问题,主要是通过查询数据库获取视图信息,然后利用编程逻辑处理依赖关系,最后按顺序保存和导入视图。这种方法提高了工作效率,降低了手动操作带来的风险,对于...
结合使用Information Schema可直接从MySQL服务器收集数据,无需额外的软件或配置。 7.性能监视 监视影响MySQL性能的主要指标。如查询缓存命中率, Key_buffer_read_hits,Key_buffer_write_hits, Thread_cache_...