mysql字段和索引问题 谢谢大家

1 字段长度问题,例如 username(varchar(16)),用户名
(1)用char和varchar哪个更好呢,个人觉得都有道理
char 定长 查询速度快,varchar 变长 但节省空间
(2)varchar(16) 里面的最大长度16,是不是通常设置成2的N次方比较好?不知道有没有这种说法,如果有,道理是什么?
2 标志位字段 例如 isdeleted(tinyint(1)) 是否删除
是否加索引?网上查的说是不用加 但我老大说是加上比较好 毕竟人家是7年多工作经验了,肯定有他的道理
谢谢大家3 select name,trim(email),telphone from cms_user; //直接在mysql中直接使用函数好吗
还是mysql什么函数都不用,所有数据查出来 用php遍历处理
那种效率高,通用的做法是什么 再次谢谢大家

1.像用户名等长度不一定的,最好还是用varchar。varchar的长度,不是非得设置成2的N次方。这个得看你设计表结构的时候,需求是什么样的,比如备注吧,一般就看需求是多少,我们这边一般是500。
2.索引主要看这个标志位字段,是否经常作为条件使用,如果是那就加上,会提高执行效率。
3.个人觉得在查询语句中使用函数挺好的,本身提供函数就是让用的,都不用那人家还提供哪些函数做什么啊。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-20
个人感觉
1.varchar比较好 username应该是用户名 数量多且不统一。
2.加不加索引我觉得看这个字段引用是否频繁
3.尽量不使用函数查询数据,各需所长, php执行这些更快一点。追问

第三条 各需所长 意思就是mysql只负责查询数据 具体数据的操作交给php去处理 是吧?
假设我取了1000条数据 其中个别字段需要处理 再用php循环一边 效率是不是很低? 有没有更好的解决办法 或是通常的做法是什么 吸取下大家的经验 呵呵
第一条 字符串长度2的N次方 有道理吗

追答

有一次性捞取1000条数据再列出来的吗? 主要还是看情况。
比如如果你要做数据库里面用某字段进行函数运算再排序等 还是mysql好。
对字符处理,一般PHP不是会分页么。没有道理foreach1000条数据 那是太多了。

总结上面的意思是 复杂点的排序用mysql比较好 字符处理等建议用php处理

本回答被提问者采纳
第2个回答  2020-06-08
数索引顾名思义就是加给字段加了函数的索引,这里的函数也可以是表达式。所以也叫表达式索引。
MySQL 5.7 推出了虚拟列的功能,MySQL8.0的函数索引内部其实也是依据虚拟列来实现的。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网