作者KennyL (Giant Heart)
看板PHP
标题[请益] MySQL执行效率一问
时间Fri Oct 14 01:18:57 2005
我有一个情况是这样的.
在某个拥有多值的栏位中利用特定的分隔符号作区隔,
比如说是作者栏位, 此栏位中有一位以上作者, 作者与作者间用特定符号分开
因此栏位的值会长成类似 John#Mary#Joe 这样.
为了要统计作者数, 在程式端我先把各个作者单独取出来,
再重新parsing回一个暂存的资料库以利统计.
程式的内容大略是这样:
-------------------------------------
$drop = 'DROP TABLE temp';
mysql_query($drop);
$create = "CREATE TABLE temp ( " .
"Author char(100) NOT NULL, KEY Author (Author))";
mysql_query($create);
mysql_query("LOCK TABLES temp WRITE");
//中间为parsing的动作
mysql_query("UNLOCK TABLES");
-------------------------------------
整个执行的过程没有什麽问题, 但因为资料量较庞大..
在执行上, 也就是说从 取出多值->写入暂存DB->output 的过程, 速度不太理想.
因此想请教一下, 无论是在DB的设计上, 或是程式的写法上,
是否有更合适的作法以增进执行的效率呢? 谢谢.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.76.130
1F:推 lichihwu:加一个栏位用来记录作者数,或者直接把作者数放在第一格: 10/14 10:58
2F:→ lichihwu:如 2#Mary#John 10/14 10:58
3F:→ lichihwu:就不必常常算啦~ 10/14 10:59
4F:推 KennyL:这个方法可能行不通,因为作者数不固定说 10/14 18:08