当前位置: 代码迷 >> Sql Server >> mysql 如何建索引优化
  详细解决方案

mysql 如何建索引优化

热度:38   发布时间:2016-04-25 00:50:35.0
mysql 怎么建索引优化
如下语句


SELECT pi.id, pi.User_Id, pi.Pay_Amount, pi.Product_Name, pi.Pay_Date, pi.Pay_Stat, pi.Pay_ChannelId, mui.User_Name, mui.User_Mobilenum FROM Pay_Info_201210 as pi LEFT JOIN mcp_user_info as mui  ON mui.User_Id = pi.User_Id WHERE 1=1 and pi.Pay_Date >= '2012-10-31'  and pi.Pay_Date <= '2012-11-01'   order by Pay_Date DESC limit 0,10 

怎么建索引优化,mcp_user_info 400W+,Pay_Info_201210 30W+

原来Pay_Info有4000w+,现在拆开,按照月分隔,但是一个月也得1000W+,
原来用4000W+跑着十条数据得4-50秒,求大侠给提点建议,本人新手,同时希望大侠能说一点建索引的原理,小弟在学习中

一下是这两个表的建表语句

CREATE TABLE `Pay_Info_201210` (
  `Id` varchar(100) NOT NULL,
  `User_Id` int(11) NOT NULL,
  `Pay_TypeId` int(3) NOT NULL COMMENT '支付类型',
  `Pay_Amount` int(11) NOT NULL COMMENT '支付金额(酷点,分)',
  `Product_Name` varchar(100) NOT NULL COMMENT '商品名称',
  `Product_Id` varchar(30) NOT NULL COMMENT '商品ID',
  `Product_Num` varchar(10) NOT NULL COMMENT '商品数量',
  `Use_PayPwd` int(2) NOT NULL COMMENT '是否使用支付密码0-未使用,1-使用',
  `Pay_Stat` int(2) NOT NULL DEFAULT '0' COMMENT '0-支付未成功,1-支付成功',
  `Pay_Date` datetime NOT NULL COMMENT '支付时间',
  `Pay_ChannelId` int(11) NOT NULL COMMENT '支付频道',
  `Product_TypeId` int(3) NOT NULL COMMENT '商品类型Id',
  PRIMARY KEY (`Id`),
  KEY `User_Id` (`User_Id`),
  KEY `user_time` (`User_Id`,`Pay_Date`),
  KEY `Pay_Date` (`Pay_Date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='支付记录表' 


CREATE TABLE `mcp_user_info` (
  `User_Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `User_Name` varchar(20) NOT NULL COMMENT '用户唯一标识名,4-14位字符,字母或数字(区分大小写)',
  `User_Pwd` varchar(50) NOT NULL COMMENT '用户密码     6-16位字符,字母或数字(区分大小写)',
  `User_Extid` int(11) NOT NULL DEFAULT '0' COMMENT '扩展信息id',
  `User_mstatus` int(2) NOT NULL DEFAULT '0' COMMENT '是否绑定手机,1是,0否',
  `User_Mobilenum` varchar(20) NOT NULL DEFAULT '0' COMMENT '用户手机号,绑定手机状态为1时必填',
  `User_Type` int(2) NOT NULL DEFAULT '0' COMMENT '注册类型:1 短信 2 手机号注册 3用户名  4第三方注册(其它渠道)',
  `User_Logindate` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次登陆时间',
  `User_Mdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '修改时间',
  `User_Regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `User_Enable` int(2) NOT NULL DEFAULT '0' COMMENT '是否有效:1有效,0无效',
  `User_ThirdId` int(11) NOT NULL DEFAULT '0' COMMENT '第三方代注册用户id',
  `Fr` varchar(20) NOT NULL DEFAULT '0',
  PRIMARY KEY (`User_Id`),
  UNIQUE KEY `User_Name` (`User_Name`),
  KEY `User_Mobilenum` (`User_Mobilenum`),
  相关解决方案