MySQL数据库优化(五)
生活随笔
收集整理的這篇文章主要介紹了
MySQL数据库优化(五)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL配置優化
通過配置my.cnf使數據庫達到優化的目的。
1、innodb的緩沖池配置
innodb_buffer_pool_size 通常配置服務器內存的60%~70%
2、innodb log緩存配置
innodb_log_buffer_size 這個不宜配置太大,因為日志緩存每秒刷新一次
3、配置緩沖池個數
innodb_buffer_pool_instances
4、在提交事務的時候,是否刷新日志緩存
innodb_flush_log_at_trx_commit 這個很重要,對性能影響較大
這個屬性有三個值可選:
- 0:不會主動觸發日志緩沖寫入磁盤
- 1:(默認項)每次提交事務的時候,同時會把日志緩沖刷新到磁盤
- 2:每次提交事務的時候,會把日志緩沖刷新到磁盤,但是他不同時進行的,而是每秒刷新一次
5、innodb讀寫IO的線程數
innodb_read_io_threads
innodb_write_io_threads
默認都為4個
6、獨立表空間配置
innodb_read_io_threads 默認是打開的
7、查詢緩存
query_cache_size
?
聚合函數優化
MAX
mysql> SELECT MAX(money) FROM t_order;這里只需給money加上索引即可
COUNT
mysql> SELECT COUNT(user_id = 1 OR NULL) AS A, COUNT(user_id = 2 OR NULL) AS B FROM t_order;這種方式不用對數據進行分組也可以獲取到某個屬性的數量
?
行轉列
mysql> SELECT SUM(CASE WHEN u.id = 1 THEN goods_num END) AS A, SUM(CASE WHEN u.id = 2 THEN goods_num END) AS B FROM users u INNER JOIN orders o ON u.id = o.user_id;?
轉載于:https://www.cnblogs.com/huanStephen/p/8127579.html
總結
以上是生活随笔為你收集整理的MySQL数据库优化(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NHibernate:no persis
- 下一篇: MySQL中整型和字符串类型指定长度的含