当前位置:数据库 > MySQL >>

关于SHOPEX网店的MYSQL优化问题

我用的网店程序,因为商品数量巨大,导致服务器负载很大,所以相对数据库做些优化。其中一个动作就是把商品按照上下架区分开放在不同的表里。现在的MYSQL数据库里,上架商品和下架商品都在一个表里。是否上架,用marketable:true和false这个来区别,请问我改用什么命令对所有marketable为false的商品另外建一个表?并自动导入?
追问:如果我这样改了,以后会不会都自动的把上下架商品分开在2个表里?
网店程序还能正常运行吧?
对于那些下架的商品,如果我再次上架,还可以吗?
答案:你先要创建一个新表,用来存储marketable为false的商品信息,表结构可以和原来的表一样。
语句:
CREATE TABLE `marketable_false` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `字段名1` int(11) NOT NULL,
 .....中间省略.....
  `字段名N` varchar(255) COLLATE gbk_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=gbk COLLATE=gbk_bin;
然后使用下面的语句将marketable为false的商品数据导入到表中:
insert  into `marketable_false` (`id`, `字段1`,中间省略,`字段N`) values (`1`,`字段1的值`,中间省略,`字段N的值`),(`2`,`字段1的值`,中间省略,`字段N的值`),....中间省略....,(`N`,`字段1的值`,中间省略,`字段N的值`),
这样就可以了。
不过,你既然能通过命令操作数据库,那是不是也能直接使用Navicat for MySql工具啊?
使用Navicat for MySql工具的话,你可以先将原来的表导出一个SQL文件,然后修改SQL文件中的内容,再将SQL文件导入到MySql数据库中就可以了。
其他:create table as
select * from tablename where marketable=false; 

上一个:mysql数据库到底下载哪个
下一个:Navicat for MySQL 中怎么创建触发器? 我又A,B两张表,B表字段和A表是一样的,

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,