python MySQLdb 连接数据库太耗时

图片说明

 #!usr/bin/python
#!coding:utf-8

import MySQLdb
import threading
from config.config import Config
from Clogger.logger import CLogger
import time


class Positions(object):
    __instance = None
    __positions = None
    __index = 0
    __Lock = None
    __size = 0

    def __init__(self):
        pass


    def __del__(self):
        Positions.__instance = None
        Positions.__positions = None
        Positions.__index = 0
        Positions.__Lock = None
        Positions.__size = 0


    def __new__(cls, *args, **kwargs):
        Positions.__Lock = threading.Lock()
        if not cls.__instance:
            try:
                Positions.__Lock.acquire()
                if not cls.__instance:
                    cls.__instance = super(Positions, cls).__new__(cls, *args, **kwargs)
                    cls.__instance.selectAll()
            finally:
                Positions.__Lock.release()


    def selectAll(self):
        try:
            print time.time()
            conn = MySQLdb.connect(
                host=Config.mysql_host,
                port=Config.mysql_port,
                user=Config.mysql_user,
                passwd=Config.mysql_password,
                db=Config.mysql_db,
                charset="utf8"
            )
            print time.time()
            cursor = conn.cursor()
        except Exception, e:
            CLogger.logger().error(str(e))
            exit()
        sql1 = "select towncode from addressComponents where province='%s' and city = '%s' and towncode is not null " \
               "group by towncode" % (Config.current_province, Config.current_city)
        sql = "select lng, lat from pois where towncode in (%s);" % sql1
        cursor.execute(sql)
        Positions.__positions = cursor.fetchall()
        Positions.__size = len(Positions.__positions)
        print Positions.__size
        if Positions.__size <= 0:
            CLogger.logger().info(str(Positions.__size))
            exit(-1)


    @staticmethod
    def getPosition():
        if not Positions.__instance:
            Positions.__new__()
        try:
            Positions.__Lock.acquire()
            index = Positions.__index
            Positions.__index += 1
            Positions.__Lock.release()
            if index >= Positions.__size:
                return "Empty"
            return Positions.__positions[index]
        except Exception, e:
            CLogger.logger().error(str(e))

3个回答

跟python代码没关系,看看mysql配置文件my.cnf

这个主要是MySQL设置或者网络连接的问题,可以看看关闭MySQL的DNS反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python MySQLdb 连接数据库
python MySQLdb 连接数据库 引入并创建连接 以连接本地数据库为例 import MySQLdb conn = MySQLdb.Connect( host = '127.0.0.1', #服务器地址 port = 3306, #服务器端口号 user = 'root', #用户名 pass...
python mysqldb连接数据库编码
来源: http://blog.donews.com/maverick/archive/2006/08/23/1012040.aspx     Python连接MySQL时需要用到  MySQLdb ,按照给出的例子,操作MySQL的代码大致如下: &quot;&quot;&quot; Python to MySQL using mysql-python&quot;&quot;&quot; import MySQLdb #...
Python MySQLdb连接数据库出错的解决办法
使用MySQLdb出错语句:db = MySQLdb.connect(&quot;localhost&quot;,&quot;root&quot;,&quot;mysql&quot;,&quot;test&quot; )报错:解决方法:将“localhost”改为“127.0.0.1”连接数据库完整代码:#!/usr/bin/python# -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接db = MySQLdb.connect(&quot;...
Python MySQLdb连接数据库之phpmyadmin报错解决方法
之前在做项目的时候,Python连的数据库是公司提供的云服务器,所以没有什么问题。今天需要在本地进行一些开发进行测试,就在本地数据库建了几个表进行相关的操作。开始时使用mysql的命令行,操作一多就显得很麻烦,所以想要用一下界面的操作,因为之前做过PHP,所以想用phpmyadmin进行操作,而且其他的也懒得装。 不过,在打开wampserver之后,进行连接数据库就报错了,如下: super
MySQLdb的安装以及python连接数据库(win,Mac)
MySQLdb的安装以及python与数据库的连接1, http://www.codegood.com/downloads在这里下载相对应的mysqlbd版本 双击安装 在命令行中输入python import MySQLdb 如果没有任何提示 则说明安装正确 注意:MySQLbd的大小写 否则还是提示不正确 2.安装好后 可以建立python与数据库的连接了import MySQLdb co
python使用mysqldb连接数据库操作方法示例详解
最近用到了scrapy与mysql的交互,为了方便下次查看,总结了一下基本的操作,以备后续使用~# -*- coding: utf-8 -*- #mysqldb import time, MySQLdb #连接 conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="u
安装MySQLdb与连接数据库
安装MySQLdbwin: 首先要确定自己已经安装pip 1、 查看是否安装: C:\Users\Administrator>pip -V pip 9.0.1 from d:\python27\lib\site-packages (python 2.7) 出现以上提示则证明已安装 2、 安装MySQLdb之前先要安装wheel,执行pip install wheel命令进行安装
python mysqldb
value=[1,"hi rollen"]rn cur.execute("insert into test values(%s,%s)", value)rn显示会有插入会有错误。但网上我看了很多都是这么写的。我用的是python3.2
MySQLdb,python
MySQLdb __init__.py converters.py mysql python
MySQLdb - python 2.7
MySQL-python-1.2.5.win-amd64-py2.7
Python学习笔记之连接MySQLdb
基于Python2.7使用 连接MySQLdb,需要MySQLdb服务 如果pip install MySQLdb失败,推荐网上直接下载安装Python MySQLdb服务。 1.官网32位的 https://pypi.python.org/pypi/MySQL-python/1.2.5 2.这个是可以找到64位的 http://www.codegood.com/download/11...
python的MySQLdb模块安装
import MySQLdb报错,提示没有该模块;直接使用pip install MySQLdb不能进行安装。解决:下载python-MySQL.exe,双击安装应用程序。安装完毕后,即可使用import MySQLdb语句下载地址:https://pypi.org/project/MySQL-python/1.2.4/Release history中有历史版本,找到自己对应的下载安装即可...
python MySQLdb操作 之 查询数据库
查询数据库 连接 # 连接 db=MySQLdb.connect(host = 'host_name', user = 'root', passwd = 'pass_word', db = 'db_name', port = 8888...
python MySQLdb 封装接口
鸟人封装的MySQLdb操作接口,包含读写分离、断线重连的逻辑,对于具体应用可以继承和扩展
python的mysqldb封装类(转)
转自: http://blog.csdn.net/serverxp/article/details/6958459   #=============================================================================== # -*- coding: utf-8 -*- #MySQLdb封装类 #author:paul w...
python MySQLdb 1054错误
[img=https://img-bbs.csdn.net/upload/201710/30/1509354061_915337.png][/img]rnrn一直抛出1054错误,显示未知的token列,但是我这里groupTime和groupValue才是列啊,token是写到groupValue的变量,为什么会错?rnrn改成rn"UPDATE cookie SET groupTime = localtime,groupValue = localtime WHERE groupName = 'weixin'"rnrn或者直接用常量rn"UPDATE cookie SET groupTime = localtime,groupValue = 'gXuJX0a9ew6rSiO8zu9-ISfn5TYZD1_F0ACMvCHJVOOh8EH' WHERE groupName = 'weixin'"rnrn都是可以的,就偏偏是token变量抛出错误,localtime也是变量又没问题,那这问题到底在哪呢?
关于MySQLdb for Python的问题
[size=large]环境:rnwindows 7rnPython 2.6.2rnMySQL 5.1rnMySQL-python-1.2.2.win32-py2.6rnrn安装过程中出现了一些警告,然后按照http://sourceforge.net/forum/message.php?msg_id=5808948方法改正rn仅import MySQLdb无错rn但是在连接中报错rnAttributeError: 'module' object has no attribute 'connect'[/size]rn代码:rn[code="Python"]rnimport MySQLdbrnrn#建立和数据库系统的连接rnconn = MySQLdb.connect(host='localhost', user='root',passwd='sa')rnrn#获取操作游标rncursor = conn.cursor()rn#执行SQL,创建一个数据库.rncursor.execute("""create database python """)rnrn#关闭连接,释放资源rncursor.close();rn[/code]
Python MYSQLdb操作数据库
测试Linux是否安装MYSQLdb,如果没有请安装,具体测试及安装方法见我的上yi'p
python的mysqldb安装方案
安装MySQLdb:一、 什么是MySQLdb?解释:MySQLdb是python操作mysql的一个接口包。这里要理解一个概念,python操作数据库,都是需要一个类似MySQLdb这样的中间层,这些中间层抽象了具体的实现,提供了统一的API供开发者使用。二、 如何安装MySQLdb? python2环境下:sudo pip install MySQL-python。 MySQL-python
Python 读写数据库(MySQLDB)
用MySQLDB 需要先安装: yum install MySQL-python.x86_64 update import datetime import MySQLdb conn= MySQLdb.connect( host='myservicedatabase.host.name.or.ip', port = 330
Python的MySQLdb模块安装
0.已默认安装Python, pip, python-dev 1.安装MySQL sudo apt-get install mysql-server sudo apt-get install mysql-client 2.关键一步(很容易忘掉) sudo apt-get install libmysqlchient-dev 3.安装MySQLdb pip install mysq
python使用MySQLdb的基本操作
以上使用python3.6 和MySQL进行开发,python3.6和MySQL连接的驱动可在python的MySQLdb驱动下载适合的版本
python mysqlDB的安装和使用
python mysqlDB的安装和使用
Python系列视频教程MySqlDB
资源名称:Python系列视频教程 MySql DB资源目录:【】python视频教程-mysql-01-1【】python视频教程-mysql-01-2【】python视频教程-mysql-02-1【】python视频教程-mysql-02-2【】python视频教程-mysql-02-3【】python视频教程-mysql-03-1【 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
python 安装mysqldb第三方库
刚开始随便在网上(http://sourceforge.net/projects/mysql-python/)下载了一个版本mysql-python-1.2.4b4.win32-py2.7。安装之后,在命令行导入import MySQLdb ,报错: importError: DLL load faild: %1 不是有效的win32 程序。查了之后发现原来是版本不对应。Windows是64位
python和mysqldb连接问题
大家好,我的系统是red hat 9,mysql5.0.22,python 2.5,mysqldb1.2.2rn按照网上的说法安装好了python和mysql,都能正常工作.然后安装mysqldb.经过一翻周折,没出什么大的错误.rn在python的解释模式下依次输入如下命令:rn[root@localhost site-packages]# pythonrnPython 2.5.4 (r254:67916, Apr 9 2009, 15:14:22) rn[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2rnType "help", "copyright", "credits" or "license" for more information.rn>>> import MySQLdbrn>>> conn = MySQLdb.Connection('127.0.0.1', 'root', 'wanglei', 'mytest')rn>>> cur = conn.cursor()rn>>> cur.execute('select * from chtest')rn11Lrn>>> row=cur.fetchall()rn>>> print rowrn(('ni hao ma?',), ('??',), ('ni hao ma?',), ('??',), ('ni hao ma?',), ('?',), ('ni hao ma?',), ('???',), ('ni hao ma?',), ('???',), ('???!!',))rn这表明可以用mysqldb连接数据库,并且能读出来一些数据.rnrn但我把上面的命令存放到一个mysqltest.py文件里面.rn[root@localhost dbTest]# cat mysqltest.py rn#!/usr/bin/pythonrn# -*- coding: gb2312 -*-rnimport MySQLdbrnconn = MySQLdb.Connection('127.0.0.1', 'root', 'wanglei', 'mytest')rncur = conn.cursor()rncur.execute('select * from chtest')rnrow=cur.fetchall()rnprint rowrnrn然后就出现如下情况:rn[root@localhost dbTest]# ./mysqltest.py rnTraceback (most recent call last):rn File "./mysqltest.py", line 4, in ?rn import MySQLdbrnImportError: No module named MySQLdb\rnrnrn请问各位这是什么情况?我搞了两天了,谢谢大家.
python:no module named MySQLdb
想用django开发网站。使用的是python2.7,操作系统win10.已经安装好了Anaconda和mysql。现在想进行连接数据库,已经在网站下载并安装了多个版本的python-mysql驱动(1.2.3版本等),然后再import MySQLdb,还是提示no module named MySQLdbrnrnrn在C:\Anaconda2\Lib\site-packages也已经有了C:\Anaconda2\Lib\site-packages\MySQL_python-1.2.3-py2.7.egg-info和C:\Anaconda2\Lib\site-packages\MySQLdb。rnrn为什么就是不能成功呢?rnrndjango在启动服务的时候,错误为:rnC:\Anaconda2\Django-1.9.4\django\bin\hello>python manage.py runsever 0.0.0.0:8080rnTraceback (most recent call last):rn File "manage.py", line 10, in rn execute_from_command_line(sys.argv)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\core\management\__init__.py", line 353, in execute_from_command_linern utility.execute()rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\core\management\__init__.py", line 327, in executern django.setup()rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\__init__.py", line 18, in setuprn apps.populate(settings.INSTALLED_APPS)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\apps\registry.py", line 108, in populatern app_config.import_models(all_models)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\apps\config.py", line 202, in import_modelsrn self.models_module = import_module(models_module_name)rn File "F:\Anaconda\lib\importlib\__init__.py", line 37, in import_modulern __import__(name)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\contrib\auth\models.py", line 4, in rn from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManagerrn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\contrib\auth\base_user.py", line 49, in rn class AbstractBaseUser(models.Model):rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\models\base.py", line 108, in __new__rn new_class.add_to_class('_meta', Options(meta, app_label))rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\models\base.py", line 299, in add_to_classrn value.contribute_to_class(cls, name)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\models\options.py", line 263, in contribute_to_classrn self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\__init__.py", line 36, in __getattr__rn return getattr(connections[DEFAULT_DB_ALIAS], item)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\utils.py", line 212, in __getitem__rn backend = load_backend(db['ENGINE'])rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\utils.py", line 116, in load_backendrn return import_module('%s.base' % backend_name)rn File "F:\Anaconda\lib\importlib\__init__.py", line 37, in import_modulern __import__(name)rn File "F:\Anaconda\lib\site-packages\django-1.9.4-py2.7.egg\django\db\backends\mysql\base.py", line 28, in rn raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)rndjango.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
python MySQLdb封装
封装了mysqldb方法方便调用。直接在脚本引用
python数据库模块MySQLdb
[root@foundation55 python]# yum install MySQL-python -y [root@foundation55 python]# yum install mysql -y [root@foundation55 python]# ipython Python 2.7.5 (default, Feb 11 2014, 07:46:25) Type
python mysqldb多线程问题
是不是只能用每个线程单独创建自己的连接的方式?而不能多个线程共享同时使用一个连接?rn这个问题又折腾了几天了,无功而返
Python:安装setuptools,安装MySQLdb模块,连接数据库代码
一、 安装MySQLdb需要事先安装以下组件: python         yum install python-devel mysql         yum install mysql-devel gcc         yum install gcc setuptools 文件名:setuptools-18.3.1.tar.gz 下载地址:https://p
Python中使用MySQLdb连接MySQL数据库出错(改用PyMySQL连接数据库)
       在Python中使用MySQLdb模块连接MySQL数据库时,由于Python 3.x中已经不支持这个模块了,取而代之的是PyMySQL。因此,首先需要安装PyMySQL,只需将链接文章中的改为pip install pymysql,安装完成之后就可以导入该模块,示例程序如下:import os, sys import pymysql # 连接数据库 try: conn = ...
Python通过MySQLdb特殊字符转义
    最近维护代码发现存在部分数据存储失败的情况,项目是通过拼装sql语句,利用MySQLdb execute来进行数据的插入。增加日志后发现存在插入失败的情况多为value中存在单引号时,到时候整个sql语法存在问题,需要对单引号进行一下转义。     MySQLdb提供了转义工具,MySQLdb.escape_string()来对字符串进行处理,然后就可以避免问题...
python的64位和32位mysqldb库
在使用python调用mysql数据库的时候,需要引入对应的数据包,这个包包含了python的64位和32位mysqldb库,
python操作MySQL的MySQLdb模块
包含python2.6操纵MySQL的安装文档和windows下的安装包。
Python编程:MySQLdb模块的安装
这个有点坑,稍微记录下 $ pip install MySQL-python
Python笔记——MySQLdb安装与使用
    先去http://sourceforge.net/projects/mysql-python/files/下载MySQL-python-1.2.2.win32-py2.5.exe。       安装好MySQLdb后打开Pydev进行测试。       1、修改Pydev配置:     1.1、打开Windows——Preferences,进行Pydev设置,修改Python...
python cx_oracle mysqldb 环境搭建小注
linux 搭建python数据库访问环境,包括mysql oracle
python模块MySQLdb安装失败解决方法
问题1: error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27 解决办法: 按上面提示到http://aka.ms/vcpython27下载安装后执行VCForPython27.msi。 问题2: _mys
python下使用MySQLdb操作MYSQL数据库
1、安装mysqldb(MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。) Ubuntu:sudo apt-get install python-mysqldb 2、各种操作直接上实例 #!/usr/bin/python # -*- coding: UTF-8 -*-
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池