之前用CHAR的时候一个查询0点几秒。变成VARCHAR之后0.00几秒。
说一下我的数据库的特点:
数据量非常大,几十万多条。某个字段A,就是上面说的那个,长度非常长,接近255的上限。
另外我上面说的那个差别是在不查询那个字段A的情况下的数据。如果用包含用instr查询那个字段的某个SQL查询的话,VARCHAR是1秒多,CHAR是10秒多。
说一下我的数据库的特点:
数据量非常大,几十万多条。某个字段A,就是上面说的那个,长度非常长,接近255的上限。
另外我上面说的那个差别是在不查询那个字段A的情况下的数据。如果用包含用instr查询那个字段的某个SQL查询的话,VARCHAR是1秒多,CHAR是10秒多。
解决方案 »
- 求下面那种写法效率高
- 发现memory,myisam存储引擎的表锁表的几率比较大,如何解决
- mysql存储过程是否可以有两个标签,实现跳转
- Linux 开机自启动 mysql
- mysql存储过程
- 寻求高手
- mysql下,如何加快在一个四五百万条记录的表中删除十几万条数据的速度?
- 为什么 MySql 的路灯老是红灯?并且,如果要启动时,没有任何反应?
- IP address '**.**.**.**' could not be resolved: 请求的名称有效,但是没有找到
- 请教一个关于deadlock 死锁的问题
- 求一位神人帮我改一条Sql语句
- 以excel文件格式导入mysql数据库 有问题。
除了这个没有其他原因了么?
你回复这贴的时候怎么就不说有的时候影响很大呢?10倍可绝对不是微小吧?
http://bbs.csdn.net/topics/390421712
查询速度相差十倍,占用磁盘空间也相差十倍,这个是巧合么?可以的话请回答一下这个问题:
http://bbs.csdn.net/topics/390452088
"1131"
null
"12"
"1"找出 like '%1%'和
" "
"1131 "
" "
"12 "
"1 ",不谈数据库,这这么两个数组,让你自己写代码在数组中搜索,你的代码会是什么? 哪个速度快?
那就按照设想,自己运算一下,给每个VARCHAR加上长度整数。 CAHR的不用加了,都要是相同的。
然后在这些VARCHAR或CHAR中搜索 12345. 看看算法效率对比是什么样"1" / 长度=2
"1 " / 长度 =100
那就按照设想,自己运算一下,给每个VARCHAR加上长度整数。 CAHR的不用加了,都要是相同的。
然后在这些VARCHAR或CHAR中搜索 12345. 看看算法效率对比是什么样"1" / 长度=2
"1 " / 长度 =100
我昨天搞错了,VARCHAR快的原因好像是我加了ORDER BY的原因,正常只搜索字符串的话还是CHAR快。可见MySQL可能还是对CHAR的搜索进行优化了。
UPDATE tablename SET field1=length(field2)
SELECT * FROM tablename WHERE instr(left(field2,field1),'abc') ORDER BY field3
这个是最慢的。
还有今天测的时候速度好像不是10倍了。以后测试的时候还是记录一下吧,不然问题真的很麻烦。
2. GROUP BY子句中的域不引用索引开头,如下所示: SELECT c1,c2 FROM t1 GROUP BY c2, c3;
3. 查询引用了GROUP BY部分后面的关键字的一部分,并且没有等于常量的等式,例如: SELECT c1,c3 FROM t1 GROUP BY c1, c2;