扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1:较频繁作为查询、排序、分组和联合操作的字段创建索引。
10多年的富阳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整富阳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“富阳网站设计”,“富阳网站推广”以来,每个客户项目都认真落实执行。
2:唯一性太差的字段不宜使用索引。
3:使用唯一索引。
4:使用短索引(若对字符串索引,尽量指定一个前缀长度)。
5:利用左前缀(复合索引可以起几个索引的作用,可利用索引最左边的列集来匹配行,称左前缀)
6:不要过度索引(每个索引会占用额外的磁盘空间,并降低写操作的能力,修改数据索引也跟着更新)
7:更新非常频繁的字段不宜创建索引。
8:不会出现在where字句中的字段无需索引。
错误信息说你的参数 $qa_id_array 不是数组类型,可能SQL查询结果为空或者遇到了错误,你可以在9行前面增加下面的调试语句看看结果:
echo 'pre';
print_r( $qa_id_array );
echo '/pre';
补充:
我把程序全部给你修改了可以不,你那些变量命名我不习惯。
而且你$qa_id = array_values($qa_id_array);之后就当$qa_id作为字符串使用是错误的。
修改后的程序如下:
?php
include ("./mysqlconn.php");
mysql_connect($mysqlserver,$mysqluser,$mysqlpassword)
or die("Could not connect: " . mysql_error());
mysql_select_db('pmwebsys');
$sql = "SELECT * FROM col_qarecord";
if ($res=mysql_query($sql)){
$row = mysql_fetch_array($res);
$qa_id = join(',', $row);
$sql="UPDATE col_qarecord SET qa_id = '$qa_id'";
if (mysql_query($sql)) echo '修改成功';
else echo "SQL:$sqlbr\n错误:".mysql_error();
}else echo "SQL:$sqlbr\n错误:".mysql_error();
?
补充:
join错误是因为select语句没有返回结果,你的col_qarecord表可能是空的吧,一条记录也没有。
补充:
数据库记录都清空了,你还select个什么呢?!还update个什么呢?!
MYSQL的索引是在数据库任何修改的时候(删除、修改、添加)自动重建的,你如果是需要修改自动编码字段的值,请在phpmyadmin里面直接修改即可,我们这两天调试的这个破程序没有任何效果,除了浪费时间以外。
补充:
Data truncated for column 'qa_id' at row 1表示你UPDATE给字段qa_id的内容超过了字段定义的长度。
补充:
int只能存放一个整数,你粘贴输出的SQL就知道了。
补充:
我感觉你都明白了的,你知道你还有什么问题,能够明确的提个为什么吗
你这个问题我有些没看懂。。。php或者其他程序语言,通过连接数据库执行sql语句存入想要存入的数据,索引是建表时在数据库添加的,当然也可以通过php来实现。
你说的是数据库索引?
如果是数据库索引没有强制的方法。
数据结构。php缺少索引层就是缺少一个排序的数据结构,索引是指数据库管理系统中一个排序的数据结构,并用以协助快速查询、 更新数据库表中数据。
无论数据库或系统都是 先生成索引,然后从索引中读取....
有更新就往索引文件中更新就行....
如linux或window中第一次搜索都很慢,建立索引之后就闪搜了...
100万条数据也不算多,把这个大索引再分成100份或更多,1万条一份..
1 0---1W
2 1w---2w
3 2w--3w
....
如果你觉得1万条记录读起来还吃力的话,那就分多一点....
然后把索引放都放到cache里,把主索引做成hash表排列....
说白了就把它放到数据库里(nosql)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流