`
xu_wccq
  • 浏览: 128553 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql进行优化

    博客分类:
  • SQL
阅读更多
mysql进行优化的地方,简单总结几点:
在设计数据表的时候,尽可能使用最有效(最小的)数据类型,尽可能使用更小的整数类型,可能定义字段类型为 NOT NULL。这会运行的更快,而且每个字段都会节省1个bit。如果在应用程序中确实需要用到 NULL,那么就明确的指定它。不过要避免所有的字段默认值是 NULL),尽可能使用最有效(最小的)数据类型。MySQL有好几种特定的类型能节省磁盘和内存。 尽可能使用更小的整数类型。在 MyISAM 表中,如果没有用到任何变长字段(VARCHAR, TEXT, 或 BLOB字段)的话,那么就采用固定大小的记录格式。这样速度更快,不过可能会浪费点空间。表的主索引应尽可能短。这样的话会每条记录都有名字标识且更高效。只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.如果总是需要用到很多字段,首先就应该多复制这些字段,使索引更好的压缩。一个字段很有可能在最开始的一些数量字符是各不相同的,因此在这些字符上做索引更合适。MySQL支持在一个字段的最左部分字符做索引。索引越短,速度越快,不仅是因为它占用更少的磁盘空间,也因为这提高了索引缓存的命中率,由此减少了磁盘搜索。在某些情况下,把一个频繁扫描的表分割成两个更有利。在对动态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况下更是如此。

进行数据库操作的时候,能有多简单就有多简单,能不用圆括号就不用圆括号,去掉那些多余的选项,能用SQL解决的就不要用程序语言来处理(mysql处理的速度比解析语言快很多);

删除表中所有数据的时候,用效率更高的TRUNCATE TABLE tbl_name 而不是DELETE FROM tbl_name;

在锁表的情况下,更新多个记录比多次更新记录要快很多,因此:推迟更新并且把很多次更新放在后面一起做。

数据库在连接时的开销很大,一个页面行不要有多次对库进行连接和关闭的操作!

经常需要读写操作的表用 MEMORY(HEAP)表!
分享到:
评论
4 楼 spamer 2008-06-30  
更不明白了
3 楼 spamer 2008-06-30  
汗!!!
=_=!!!
狂汗!
没看懂什么意思啊
能这样:select * from table limited count 表达吗?

我这边报错,我的mysql版本是  5.0.41  的
2 楼 spamer 2008-06-30  
=_=!!!
晕,没看懂什么意思啊
1 楼 spamer 2008-06-30  
"在同时用 limited count和order by 的时候,找到count 记录之后,就停止扫描数据表里,因此,排序只有在所搜索的数据部分进行排序,并不是整个数据表(特别要注意!)"
这个不对吧......不要误人子弟啊...

测都没测就把它贴出来。。。
是先排好序,然后再进行字段选择的,要不然也不会产生临时表了

mysql> select id,name,status,lastupdate from tasks;
+----+--------------+--------+---------------------+
| id | name         | status | lastupdate          |
+----+--------------+--------+---------------------+
| 14 | stop         | P      | 2008-06-18 09:38:31 |
| 15 | stock_total  | P      | 2008-06-06 19:29:08 |
| 16 | stock_total1 | P      | 2008-06-18 15:58:46 |
| 22 | stock_total  | P      | 2008-06-18 17:29:54 |
| 23 | stock_total  | P      | 2008-06-18 17:30:03 |
| 21 | stock_total  | P      | 2008-06-18 17:29:30 |
| 24 | stock_total  | E      | 2008-06-18 17:34:46 |
| 25 | stock_total  | P      | 2008-06-18 17:34:52 |
| 26 | stock_total  | P      | 2008-06-18 17:35:25 |
| 27 | stock_total  | P      | 2008-06-18 17:35:44 |
| 28 | stock_total  | P      | 2008-06-18 17:40:59 |
| 29 | stock_total  | P      | 2008-06-18 17:46:58 |
+----+--------------+--------+---------------------+

mysql> select id,name,status,lastupdate from tasks order by id desc limit 0,3;
+----+-------------+--------+---------------------+
| id | name        | status | lastupdate          |
+----+-------------+--------+---------------------+
| 29 | stock_total | P      | 2008-06-18 17:46:58 |
| 28 | stock_total | P      | 2008-06-18 17:40:59 |
| 27 | stock_total | P      | 2008-06-18 17:35:44 |
+----+-------------+--------+---------------------+

相关推荐

Global site tag (gtag.js) - Google Analytics