PyMySQL是Python3.x版里用于连接处理MySQL业务的库,在之前的Python2版本中是使用mysqldb,使用时引入类库后直接执行connect方法,其中要注意的两个选项,设置connect_timeout控制连接时间,设置cursorclass=pymysql.cursors.DictCursor从而使mysql返回的结果中包含字段,如果不设置执行完毕返回的结果集默认以元组形式。如下示例:本文地址:http://www.04007.cn/article/1052.html,未经许可,不得转载.
#导入pymysql连接database import pymysql con = pymysql.connect( host="", user="", password="", database="", port="", cursorclass=pymysql.cursors.DictCursor, connect_timeout="", charset="utf8") #得到一个可以执行SQL语句的对象 cursor = con.cursor() #cursorclass也可以在连接后设置 #cursor = con.cursor(cursor=pymysql.cursors.DictCursor)本文地址:http://www.04007.cn/article/1052.html,未经许可,不得转载.
在使用PyMySQL默认都关闭了自动提交,从而在使用的时候总是要显示的调用commit方法来提交语句,在MYSQL的general日志中可以看到,所有的SQL语句 都有显示提交,但这真的有点多余,真正的业务场景中很多只是一个简单的查询,根本不用开启事务,另外事务太多也会导致数据库性能的下降(和数据库服务器的配置相关)。所以建议使用pymysql时不要开启事务。pymysql的Connection接口提供了一个选项:autocommit。在使用pymysql.connect连接的时候加上autocommit=True,所有的SQL语句就会自动提交,而在要使用事务的地方就显示设置一下关闭自动提交,所有的SQL就绪之后再提交事务即可。本文地址:http://www.04007.cn/article/1052.html,未经许可,不得转载.
另外记录一下在命令行下用来查询列出某个数据库所有数据表名行数列表的SQL语句,平常多是使用Navicat来连接MYSQL,在命令行下可以如下语句快速列出表的表名行数等内容,注使用这SQL查询时表行数不会立即更新,如果表记录有变化,需要使用表分析语句ANALYZE TABLE 表名处理一下再查询即可。本文地址:http://www.04007.cn/article/1052.html,未经许可,不得转载.
#列出某个数据库所有数据表名行数列表的SQL语句 ANALYZE TABLE 表名 SELECT table_name,table_rows,DATA_LENGTH/1024/1024 "DATA_LENGTH",CREATE_TIME,TABLE_COLLATION FROM `information_schema`.`tables` WHERE TABLE_SCHEMA = '数据库名' ORDER BY table_rows DESC;本文地址:http://www.04007.cn/article/1052.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1052.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |