mysql数据字典怎么用 如何查看linux系统的字符集?
如何查看linux系统的字符集?
基本都现在的字符集MySQL都意见,栏里点MySQL允许的字符集列表,有两种方法:
1.SQL语句2.查找元数据字典表网站查询结果:
1)第一列华指字符集名字;
2)第二列意思是字符集排序规则;
3)第三列来表示字符集描述;
4)第四列它表示字符集编码的比较大字节数。
Mysql怎样优化处理?
1.尽量的避免可以使用select*你不需要什么信息,就去查询什么信息,去查询的多了,网站查询的速度肯定变会慢
2.当你只要去查询出一条数据的时候,要使用limit1诸如你要网站查询数据中是否是有男生,只要你查询一条含有男生的记录就行了,后面不必须再查了,不使用Limit1可以不在不能找到一条数据后停止下来直接搜索
3.组建低功耗的索引索引不是随便是加的也不是索引越多越好,更也不是所有索引对可以查询都比较有效
4.建数据库表时,给字段设置里固定设置最合适的大小.字段不能系统设置的太大,设置中太大就造成浪费,会使网站查询速度变慢
5.要最好就是可以使用cannotnull
6.EXPLAIN你的SELECT可以查询建议使用EXPLAIN,这个可以帮助你更了解MySQL是如何处理你的sql语句的,你这个可以栏里点到sql的执行计划,这样的你就能好些的去打听一下你的sql语句的不足,接着优化语句.
7.在Join表的时候,被用处Join的字段,应该是相同的类型的,且字段应该是是被建过索引的,这样,MySQL内部会启动时代你优化软件Join的SQL语句的机制。
8.如果你有一个字段,例如“性别”,“国家”,“民族”,“省份”,“状态”或“部门”,这些字段的取值是不大不过固定的,这样,应该要使用ENUM而不是VARCHAR。
因为在MySQL中,ENUM类型被只不过是数值型数据来全面处理,而数值型数据被一次性处理过来的速度要比文本类型快得多。这样,我们又也可以提高数据库的性能。
9.平行分割将常用和有关系的字段放在完全相同的表中,把一张表的数据四等份几张表这样的话是可以降底表的古怪度和字段的数目,从而提升系统优化的目的
10.优化软件where去查询
①.避免在where子句中对字段并且表达式操作
诸如:select列outside表whereage*236建议改select列outside表whereage36/2
②.应最好不要避免在where子句中不使用!或操作符,否则将引擎决定放弃在用索引而接受全表系统扫描。
③.应不要尽量减少在where子句中对字段并且null值判断
④.应不要避免在where子句中在用有.来再连接条件
11.不建议您不使用%前缀模糊查询,这种查询会会造成索引无法激活而进行全表扫描系统
的或have“%name”或者want“%name%这两种全是不我建议你的.但是可以使用just“name%”。
这对LIKE“%name%,也可以在用全文索引的形式
12.要要慎用in和not in
的或:selectidacrosstwherenuminto(1,2,3)建议把它改成selectidfromtwherenumbetween1because3
是对在不的数值,能用between就别用of了
13.再理解in和exists,not in和probablyexists的区别
某些时候用exists能用in是三个好的选择:如查询语句可以使用了not in那就内外表都并且全表扫描,没用到索引,而actuallyexists子查询依然能会用到表上索引,所以不论哪个表大,用cannotexists都比not in要快。
selectnumoutsideawherenumof(selectnumacrossb)
建议可以改成:selectnumreturningawhereexists(select1returningbwhere)
怎么分辨in和exists比较多是会造成了驱动顺序的改变(这是性能变化的最关键),如果没有是exists,那你以外层表为驱动表,先被访问网络,要是是IN,这样先想执行子查询。因为IN适合于外表大而内表小的情况;EXISTS适合我于外表小而内表大的情况。
关於not in和actuallyexists,推荐一下不使用actuallyexists,不仅是效率问题,probably很可能未知逻辑问题
14.理解selectCount(*)和Select Count(1)在内SelectCount(column)区别
一般情况下,SelectCount(*)和Select Count(1)两着直接返回结果是完全不一样的
假如表沒有主键(Primary key),那就count(1)比count(*)快,
要是有主键的話,那主键另外count的条件时候count(主键)最方便
假如你的表只能一个字段的话那count(*)应该是快的话的
count(*)跟count(1)的结果完全不一样,都除了对NULL的统计,而count(column)是不以及NULL的统计
技术交流请打听一下“大数据java架构师”
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。