Mysqld.exe memory usage I am using mysql 5.6.14, For a long time i got large memory usage by mysqld.exe, i was trying many different solutions and my.ini settings to fix this up but didn't succeed, This is my config file(my.ini), When i start mysqld via command line(mysqld --console) this is the output:

2013-11-14 18:30:36 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --ex
plicit_defaults_for_timestamp server option (see documentation for more details).
2013-11-14 18:30:36 4440 [Note] Plugin 'FEDERATED' is disabled.
2013-11-14 18:30:36 4440 [Note] InnoDB: The InnoDB memory heap is disabled
2013-11-14 18:30:36 4440 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2013-11-14 18:30:36 4440 [Note] InnoDB: Compressed tables use zlib 1.2.3
2013-11-14 18:30:36 4440 [Note] InnoDB: Not using CPU crc32 instructions
2013-11-14 18:30:36 4440 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2013-11-14 18:30:36 4440 [Note] InnoDB: Completed initialization of buffer pool
2013-11-14 18:30:36 4440 [Note] InnoDB: Highest supported file format is Barracuda.
2013-11-14 18:30:36 4440 [Note] InnoDB: The log sequence numbers 1796484 and 1796484 in ibdata files
 do not match the log sequence number 1796504 in the ib_logfiles!
2013-11-14 18:30:36 4440 [Note] InnoDB: Database was not shutdown normally!
2013-11-14 18:30:36 4440 [Note] InnoDB: Starting crash recovery.
2013-11-14 18:30:36 4440 [Note] InnoDB: Reading tablespace information from the .ibd files...
2013-11-14 18:30:37 4440 [Note] InnoDB: Restoring possible half-written data pages
2013-11-14 18:30:37 4440 [Note] InnoDB: from the doublewrite buffer...
2013-11-14 18:30:37 4440 [Note] InnoDB: 128 rollback segment(s) are active.
2013-11-14 18:30:37 4440 [Note] InnoDB: Waiting for purge to start
2013-11-14 18:30:37 4440 [Note] InnoDB: 5.6.14 started; log sequence number 1796504
2013-11-14 18:30:37 4440 [Note] Server hostname (bind-address): '*'; port: 3306
2013-11-14 18:30:37 4440 [Note] IPv6 is available.
2013-11-14 18:30:37 4440 [Note]   - '::' resolves to '::';
2013-11-14 18:30:37 4440 [Note] Server socket created on IP: '::'.
2013-11-14 18:30:38 4440 [Note] Event Scheduler: Loaded 0 events
2013-11-14 18:30:38 4440 [Note] mysqld: ready for connections.
Version: '5.6.14'  socket: ''  port: 3306  MySQL Community Server (GPL)


Usually i am using net start mysql to start mysql server but so you may notice some problem i used mysqld --console.

As you can see this is the capture from my resource monitor:



If anyone know how to solve/reduce memory usage I will be very thankful.



Edit:
Thank you for your answer, Without changing anything at my.ini this is the value i get for SHOW GLOBAL VARIABLES like 'join_buffer_size';:

+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| join_buffer_size | 262144 |
+------------------+--------+


If i understand you i should set all my my.ini settings up to 4mb, So After i set:

innodb_buffer_pool_size = 4M
join_buffer_size = 4M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M


This is the new memory usage:



About SHOW ENGINE PERFORMANCE_SCHEMA STATUS; i was amazed by the numbers: http://pastebin.com/J6GfV591

About per-connection memory, I am using a Singleton pattern for mysql connections so after i search for pre-connection memory i am not sure if it is pre-query memory or pre-connection memory, If its pre-query memory so my singleton pattern is not related to the subject, So if you can some me where do i set the pre-connection memory because i don't know if it is mysql variable or my.ini directive.
Please note that your server seems to have recovered from a crash, according to the init log. Something strange may have happened there related to your problems (a crash, a non-clean stop, a memory leak, etc.)

There are several reasons why MySQL 5.6 may be consuming a lot of memory (specially compared to 5.5). 

You have a 128Mb buffer pool (default), that may consume around 150 MB of memory having into account the extra buffers. Aside from other global buffers, you have to add the per-connection memory. You have a huge join_buffer_size on your configuration (128M), but it is commented. Make sure that it is not set to that value by executing:

SHOW GLOBAL VARIABLES like 'join_buffer_size';


Anything bigger that 4MB is normally not recommended.

The first one I would check, however, -which several people have reported memory problems with- is the performance_schema, a new feature that has been enabled by default in 5.6. You can check its memory consumption by doing:

SHOW ENGINE PERFORMANCE_SCHEMA STATUS;


For more information, we would need the runtime statistics of the server, namely:

SHOW ENGINE INNODB STATUS;
SHOW PROCESSLIST;
SHOW GLOBAL STATUS;




Edit to your edit

Do not set the Buffer Pool to 4 MB! That is a global value, and the most important cache buffer if you are using InnoDB.  That is too little even for an embedded system. The 4Mb was just for the join_buffer_size. If you don't know what to put there, and as you seem to be aiming for low memory usage, set it to something around the 50-80% of the total memory you aim to consume.

Your performance_schema consumption is certainly worrying. Set performance_schema = off on your configuration and restart MySQL Server.

Regarding per-connection-memory: simply you must know that there are some variables that reserve memory per action or per session. join_buffer_size, sort_buffer_size, etc. are session variables; innodb_buffer_pool_size is global to the server and is only reserved once. If you are using a single connection to the server, you may not have to worry too much. But please share the complete output of the previous commands, and your hardware specs/memory usage aims.