MySQL优化

使用python连接mysql

安装MySQL-python 不支持Python3
要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。
下载地址:https://pypi.python.org/pypi/MySQL-python/
下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:

>>python setup.py install

1.no module named configparser
In Python 3, ConfigParser has been renamed to configparser

pip install configparser 
//需先安装pip

2.EnvironmentError: mysql_config not found
没有安装:libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

3.Python.h: No such file or directory
先查找是否存在Python.h这个文件。/usr/include/Python2.x
如果没有则需要安装Python-dev这个包

sudo apt-get install python-dev

1、索引优化

1、建索引的几大原则
http://tech.meituan.com/mysql-index.html
http://coolshell.cn/articles/1846.html

mySQL数据库Sql语句执行效率检查–Explain命令

2、索引的操作
查看索引

show index from mytable

普通索引
– 创建索引

CREATE INDEX indexName ON mytable(username(10));            -- 单列索引
CREATE INDEX indexName ON mytable(username(10),city(10));   -- 组合索引

– indexName为索引名,mytable表名,username和city为列名,10为前缀长度,即索引在该列从最左字符开始存储的信息长度,单位字节
– 如果是CHAR,VARCHAR类型,前缀长度可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 前缀长度,下同。
ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10))建立这样的组合索引,其实是相当于分别建立了下面两组组合索引:
–title,time
–title

– 修改表结构来创建索引

ALTER TABLE mytable ADD INDEX indexName (username(10));

唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式(仅仅在创建普通索引时关键字 INDEX 前加 UNIQUE):
– 创建索引

CREATE UNIQUE INDEX indexName ON mytable(username(10));

– 修改表结构来创建索引

ALTER TABLE mytable ADD UNIQUE INDEX indexName (username(10)); -- 也可简写成 
ALTER TABLE mytable ADD UNIQUE indexName (username(10));

主键索引
它是一种特殊的唯一索引,不允许有空值。在建表的时候同时创建的主键即为主键索引
主键索引无需命名,一个表只能有一个主键。主键索引同时可是唯一索引或者全文索引,但唯一索引或全文索引不能共存在同一索引
– 修改表结构来创建索引

ALTER TABLE mytable ADD PRIMARY KEY (id);

全文索引
InnoDB存储引擎不支持全文索引show engines; 查看默认引擎
– 创建索引

CREATE FULLTEXT INDEX indexName ON mytable(username(10));

– 修改表结构来创建索引

ALTER TABLE mytable ADD FULLTEXT INDEX indexName (username(10)); -- 也可简写成 
ALTER TABLE mytable ADD FULLTEXT indexName (username(10));

– 创建表的时候直接指定

CREATE TABLE mytable(
    id INT,
    username VARCHAR(16),
    city VARCHAR(16),
    age INT,
    FULLTEXT INDEX indexName (username(10)) 
    //也可简写成 FULLTEXT indexName (username(10))
)ENGINE=MYISAM;

– 建表时创建全文索引,要设置该表的存储引擎为MYISAM,新版mysql默认InnoDB存储引擎不支持全文索引

删除索引
DROP INDEX indexName ON mytable;

修改表的实现方法

这里写链接内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值